Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 JSLint的目的;不允许在正则表达式中不安全“;选项_Javascript_Regex_Security_Jslint - Fatal编程技术网

Javascript JSLint的目的;不允许在正则表达式中不安全“;选项

Javascript JSLint的目的;不允许在正则表达式中不安全“;选项,javascript,regex,security,jslint,Javascript,Regex,Security,Jslint,我有一行代码在运行JSLint时出现以下错误: Lint at line 604 character 48: Insecure '^'. numExp = parseInt(val[1].replace(/[^\-+\d]/g, ""), 10); 此错误似乎与JSLint选项页中的以下描述有关: "true if . and [^...] should not be allowed in RegExp literals. These forms should not be used whe

我有一行代码在运行JSLint时出现以下错误:

Lint at line 604 character 48: Insecure '^'.
numExp = parseInt(val[1].replace(/[^\-+\d]/g, ""), 10);
此错误似乎与JSLint选项页中的以下描述有关:

"true if . and [^...]  should not be allowed in RegExp literals.
These forms should not be used when validating in secure applications."
我不太明白客户端javascript应用程序如何真正被认为是安全的。即使使用最严密的正则表达式,仍然可以触发firebug之类的东西并更改变量。真正的输入验证应该在服务器上完成,而客户端浏览器可能应该坚持验证,以处理对普通用户的滥用


忽略此错误是否安全?我是否错过了一个角度,因为客户端输入验证,我的应用程序将不安全?

它试图告诉您的是,通常最好指定可以输入的内容,而不是不能输入的内容

在这种情况下,您的正则表达式实际上是在剥离坏字符,因此可以安全地忽略警告。

在本文中,“不安全”表示“不特定”。点
和独占范围
[^…]
都没有明确定义正则表达式应匹配的内容。出于验证目的,这可能会带来成功匹配您没有想到和不想要的内容的风险(想想:白名单与黑名单)

在任何情况下,点和独占范围都是正则表达式的有效部分,如果它们满足您的需要(如本例),我认为警告过于谨慎

恶意用户可以随时篡改您的页面逻辑;警告更多的是关于页面的常规操作