容忍 。在/ RegEx /中的[^ ...]

时间:2011-12-14 00:44:14

标签: javascript jslint

似乎ESlint最近添加了选项:

“容忍。和[^ ...]在/ RegEx /".

为什么在正则表达式中使用.^会不好?

1 个答案:

答案 0 :(得分:5)

来自the JSLint documentation

  

它们匹配的材料超出预期,允许攻击者混淆应用程序。在安全应用程序中进行验证时,不应使用这些表单。

这似乎是基于这样一种理念,即对您允许的内容进行具体说明,而不是允许任何内容(包括多字节和非打印字符).或允许除x,y和z之外的任何内容(如{{{ 1}}意味着)

来自the JSLint mailing list

  

这背后的理由是有些人不明白[^…]   并且.表示正则表达式,因此它会使其代码接受   一些东西在它不存在时是有效的,或拒绝某些有效的东西。