regex - 在哪些语言中使用用户提供的正则表达式是一个安全漏洞?

标签 regex security language-features

编辑:tchrist 告诉我,我最初对 Perl 不安全感的指责是没有根据的。然而,问题仍然存在。

我知道在 Perl 中,你可以在正则表达式中嵌入任意代码,所以显然接受用户提供的正则表达式并匹配它允许任意代码执行并且是一个明显的安全漏洞。但是对于所有使用正则表达式的语言来说都是这样吗?所有使用“Perl 兼容”正则表达式的语言都是这样吗?用户提供的正则表达式在哪些语言中可以安全使用,在哪些语言中允许任意代码执行或其他安全漏洞?

最佳答案

在大多数语言中,允许用户提供正则表达式意味着您允许拒绝服务攻击。

某些类型的正则表达式执行起来非常耗费 CPU。所以一般来说,允许用户输入将在远程系统上执行的正则表达式是一个坏主意。

欲了解更多信息,请阅读此页面:http://www.regular-expressions.info/catastrophic.html

关于regex - 在哪些语言中使用用户提供的正则表达式是一个安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289923/

相关文章:

java - java中提取特定字符串

java - 使用正则表达式仅匹配那些正确使用转义字符的字符串(根据Java语法)?

javascript - jQuery 中的 preg_match 字符串

iphone - 移动安全解决方案

c# - AES 使用无效 IV 正确解密了一半的字符串,这正常吗?

php - Laravel 中批量分配的风险

等效的 JavaScript HashMap

正则表达式删除字母和点的组合

python - 是否有相当于 `perl -pi -e` 的 Python ?

programming-languages - Scala 有什么了不起的?