gpt4 book ai didi

javascript - JSLint "disallow insecure in regex"选项的用途

转载 作者:IT王子 更新时间:2023-10-29 03:15:55 24 4
gpt4 key购买 nike

我有一行代码在通过 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 之类的东西并无论如何更改变量。真正的输入验证应该在服务器上完成,客户端浏览器可能应该坚持验证,以处理普通用户的滥用。

忽略这个错误是否安全?我是否在这里遗漏了一个 Angular ,即我的应用程序会因为客户端输入验证而变得不安全?

最佳答案

“不安全”在此上下文中表示“不特定”。点 . 和排除范围 [^…] 都没有明确定义正则表达式应该匹配什么。出于验证目的,这可以提出成功匹配您没有想到和不想要的东西的风险(想想:白名单与黑名单)。

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

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

关于javascript - JSLint "disallow insecure in regex"选项的用途,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2372635/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com