Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/grails/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 这个输入消毒正则表达式安全吗?_Javascript_Regex_Input_Sanitization - Fatal编程技术网

Javascript 这个输入消毒正则表达式安全吗?

Javascript 这个输入消毒正则表达式安全吗?,javascript,regex,input,sanitization,Javascript,Regex,Input,Sanitization,我有一个输入字段,希望用户在其中输入一个地方的名称(城市/城镇/村庄/任何地方)。我有一个函数,用于清理输入字段的内容 sanitizeInput: function (input) { return input.replaceAll(/[&/\\#,+()$~%.^'":*?<>{}]/g, ""); } sanitizeInput:函数(输入){ 返回input.replaceAll(/[&/\\\\\\\,+()$

我有一个输入字段,希望用户在其中输入一个地方的名称(城市/城镇/村庄/任何地方)。我有一个函数,用于清理输入字段的内容

sanitizeInput: function (input) {
        return input.replaceAll(/[&/\\#,+()$~%.^'":*?<>{}]/g, "");
    }
sanitizeInput:函数(输入){
返回input.replaceAll(/[&/\\\\\\\,+()$~%.^':?{}]/g,“”;
}
我想删除我希望不会出现在地名中的所有特殊字符。我认为黑名单正则表达式比白名单正则表达式好,因为地名中可能还会出现许多字符

我的问题是:

  • 这个正则表达式安全吗
  • 是否可以改进
  • 你看到使用这个正则表达式攻击程序的方法了吗

  • 编辑:这是一个只有前端的小型项目。没有后端。

    重要的是要记住,前端清理主要是为了改善用户体验和防止意外数据输入错误。有一些方法可以绕过前端控件。因此,依赖t上的清理数据非常重要出于安全目的删除后端。这可能不是您问题的答案,但根据您对后端使用的内容,您可能需要清理某些内容,或者它可能内置了控件,您可能不需要担心进一步清理

    附言。
    请原谅我缺少参考资料。但这值得你自己研究。

    重要的是要记住,前端清理主要是为了改善用户体验和防止意外数据输入错误。有一些方法可以绕过前端控制。因此,依赖bac上的清理数据非常重要kend用于安全目的。这可能不是您问题的答案,但根据您在后端使用的内容,您可能需要清理某些内容,或者它可能内置了控件,您可能不需要担心进一步清理

    附言。
    请原谅我缺少参考资料。但这是值得你自己研究的。

    你的正则表达式非常适合删除任何特殊字符。 答案是:

    1.正则表达式是安全的,但正如您所提到的,它是一个vuejs项目,因此js功能将在浏览器上运行。浏览器基本上不安全,无法执行用户输入清理。您也应该在后端服务器上执行此操作,以确保100%安全

  • 在本例中,您无法改进正则表达式本身。但是,您也可以对每个特殊字符使用indexOf来代替正则表达式(这将是最快的过程,但更冗长,代码太多) 比如: str.indexOf('&')!=-1 str.indexOf(“#”)!=-1 等
  • 3.与答案1相同,正则表达式是安全的,但由于它在浏览器js中使用,代码可能会被禁用,因此请同时进行服务器端验证


    如果您对此答案有任何疑问,请通过评论或回复告知我。

    您的正则表达式非常适合删除任何特殊字符。 答案是:

    1.正则表达式是安全的,但正如您所提到的,它是一个vuejs项目,因此js功能将在浏览器上运行。浏览器基本上不安全,无法执行用户输入清理。您也应该在后端服务器上执行此操作,以确保100%安全

  • 在本例中,您无法改进正则表达式本身。但是,您也可以对每个特殊字符使用indexOf来代替正则表达式(这将是最快的过程,但更冗长,代码太多) 比如: str.indexOf('&')!=-1 str.indexOf(“#”)!=-1 等
  • 3.与答案1相同,正则表达式是安全的,但由于它在浏览器js中使用,代码可能会被禁用,因此请同时进行服务器端验证


    如果您对这个答案有任何疑问,请通过评论或回复让我知道。

    好吧,我的项目没有我自己的后端。这是一个非常小的前端项目。那么我同意subhadip pahari的观点。如果您只是担心脚本攻击,我会说您已经充分保护了自己免受它的攻击!这里有一个工具我可以使用在过去,我发现对测试regex很有帮助:嗯,我的项目没有自己的后端。这是一个只有前端的非常小的项目。那么我同意subhadip pahari的观点。如果你只是担心脚本攻击,我会说你已经充分保护了自己免受它的攻击!下面是一个我发现对测试regex很有帮助的工具过去: