Экранирование ввода для LIKE в Zend_Db - PullRequest
1 голос
/ 04 июня 2011

Как правильно экранировать текст, который передается в запрос с сопоставлением с шаблоном LIKE?Проблема в том, что

select()->where('field LIKE ?', $input . '%');

будет неправильным с

$input = '%sometext';

ОБНОВЛЕНО: 'уязвимый для' -> 'неверен с'

1 Ответ

0 голосов
/ 04 июня 2011

Это не уязвимость, не так ли? Это действительный контент. Если это создает уязвимость для вашего приложения (например, WHERE user LIKE '%admin%'), вам следует рассмотреть возможность проверки / фильтрации самих входных данных, используя sth вроде:

if (strpos('%', $input)){
     $input = strtr($input, '%', '');
}
...