我有一行代码在通过 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 之类的东西并无论如何更改变量。真正的输入验证应该在服务器上完成,客户端浏览器应该坚持使用验证来处理普通用户的滥用行为。
忽略此错误是否安全?我是否在这里错过了一个角度,因为客户端输入验证,我的应用程序将不安全?