Представьте, что PHP (или JS) имеет недостаток в своей функции сопоставления регулярных выражений preg_match(...)
, Для тех же параметров, иногда это дает совпадение, иногда нет.
Какие проблемы безопасности могут возникнуть из-за этого? Может ли эта функция использоваться на стороне сервера (или на стороне клиента, в случае JS)?
РЕДАКТИРОВАТЬ: Например, представьте, что у меня есть строка STR, шаблон регулярного выражения PTR и соответствующая функция MATCH (STR, PTR), которая возвращает правда или же ложный если строка соответствует шаблону или нет, соответственно
Учтите, что я выполняю следующий код:
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, которые вызывают эту проблему.
Задача ещё не решена.
Других решений пока нет …