编辑:tchrist 告诉我,我最初对 Perl 不安全感的指责是没有根据的。然而,问题仍然存在。
我知道在 Perl 中,你可以在正则表达式中嵌入任意代码,所以显然接受用户提供的正则表达式并匹配它允许任意代码执行并且是一个明显的安全漏洞。但是对于所有使用正则表达式的语言来说都是这样吗?所有使用“Perl 兼容”正则表达式的语言都是这样吗?用户提供的正则表达式在哪些语言中可以安全使用,在哪些语言中允许任意代码执行或其他安全漏洞?
最佳答案
在大多数语言中,允许用户提供正则表达式意味着您允许拒绝服务攻击。
某些类型的正则表达式执行起来非常耗费 CPU。所以一般来说,允许用户输入将在远程系统上执行的正则表达式是一个坏主意。
欲了解更多信息,请阅读此页面:http://www.regular-expressions.info/catastrophic.html
关于regex - 在哪些语言中使用用户提供的正则表达式是一个安全漏洞?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4289923/