使用错误函数评估正则表达式会对安全性产生什么影响?

时间:2015-12-21 22:14:58

标签: javascript php regex security exploit

想象一下,PHP(或JS)在其正则表达式匹配函数preg_match(...)中存在缺陷。 对于相同的参数,有时它会给出匹配,有时它不会。

这会产生哪些安全问题?这个函数可以在服务器端(或客户端,在JS情况下)被利用吗?

编辑:例如,假设我有一个字符串STR,一个正则表达式模式PTR和一个匹配函数MATCH(STR,PTR),它返回 true false 如果字符串与模式匹配,则为resp。

考虑一下我执行以下代码:

STR = ...;
PTR = ...;
MATCH(STR, PTR); // will return true
MATCH(STR, PTR); // will return false
MATCH(STR, PTR); // will return true
MATCH(STR, PTR); // will return false

因此,对于相同的值PTR,STR,该函数将返回不同的(显然是非确定性的)输出。这个问题有多严重?

注意:PTR和STR的所有值都不会发生这种情况,但PTR和STR有很多可能的值会触发此问题。

0 个答案:

没有答案