Javascript 为什么[^…]在/RegExp/中不安全?

Javascript 为什么[^…]在/RegExp/中不安全?,javascript,regex,Javascript,Regex,检测到我的以下代码不安全: /([^\n]+)([\n\s]*)/g 后来我了解到有一个lint选项: “.和[^…]in/RegExp/” 你可以在上面找到 为什么它不安全 问题在于[^…]字符,您在regex中允许几乎任何内容,而jshint检测到安全风险 这就是关于[^…]的说法: 如果是真的。在RegExp文本中应允许使用和[^…]。他们匹配 比预期更多的材料,使攻击者混淆 应用。在安全模式下验证时不应使用这些表单 应用程序 提供整个可复制的代码块,以便我们也能看到它。这将是一个更好的

检测到我的以下代码不安全:

/([^\n]+)([\n\s]*)/g
后来我了解到有一个lint选项:

“.和[^…]in/RegExp/”

你可以在上面找到


为什么它不安全

问题在于[^…]字符,您在regex中允许几乎任何内容,而jshint检测到安全风险

这就是关于[^…]的说法:

如果是真的。在RegExp文本中应允许使用和[^…]。他们匹配 比预期更多的材料,使攻击者混淆 应用。在安全模式下验证时不应使用这些表单 应用程序


提供整个可复制的代码块,以便我们也能看到它。这将是一个更好的副本:我是唯一一个认为JSLint试图做比它打算做的多得多的工作的人吗?(更不用说它做得很糟糕)@dandavis:看起来它也在检查安全性。如果有一天它会抱怨代码中的语法,我不会感到惊讶comments@zerkms我同意,jshint更好。像这样的神奇警告给开发人员一种错误的安全感。只有在某些情况下才是不安全的。