Zend Framework санитарная обработка данных - PullRequest
3 голосов
/ 03 ноября 2010

Я видел разные комментарии повсюду, некоторые говорят, что Zend Framework автоматически очищает данные пост / получение, но другие говорят, что это не так.Я видел, что сделать это в predispatch с foreach на getParams - это самый быстрый способ, но есть ли у кого-нибудь предложения?

Ответы [ 3 ]

4 голосов
/ 03 ноября 2010

Вероятно, сделка о Zend_Controller_Request против Zend_Db.Данные запроса часто помещаются в БД.

Объект запроса ничего не экранирует.Вы можете заставить его использовать фильтры, фильтры форм или, например, использовать метод отражения, описанный здесь:

4 голосов
/ 03 ноября 2010

Это не автоматически очищает любые данные запроса.Это невозможно, потому что для этого необходимо знать , как его дезинфицировать, например, следует ли $_GET['foo'] очищать строку или для чисел?Вы должны сказать это.

Независимо от того, очищаете ли вы ввод вручную в соответствующих действиях контроллера или в ActionHelper, или автоматически в плагине контроллера, или во время начальной загрузки, или с их сочетанием, решать вам.

Используйте то, что подходит.

1 голос
/ 03 ноября 2010

Это определенно не автоматически очищает ваши переменные для вас. Вы можете сделать что-то вроде foreach или использовать array_map в зависимости от контекста, например:

$_POST = array_map('mysql_real_escape_string', $_POST);

В идеале вы должны обрабатывать каждую переменную в каждом конкретном случае. Лично я много использую PHP filter_var для фильтрации и очистки.

...