Как фильтровать и проверять пользовательский ввод в Zend Framework - PullRequest
1 голос
/ 29 августа 2010

на моем сайте есть раздел комментариев.Я хочу отфильтровать и проверить ввод, прежде чем сохранить его в моей базе данных.Если на входе есть недопустимые символы, пользователь получает уведомление о том, что его данные недействительны.

Мой вопрос, какие символы запрещены?например, я хочу избежать инъекций sql

Теги не допускаются.Как мне это проверить?

1 Ответ

2 голосов
/ 29 августа 2010

Если вы используете Zend_Db и параметризованные запросы (то есть: $adapter->insert($tableName, array('param' => 'value'))), тогда он автоматически исключит все для вас.

Если, однако, вы хотите дополнительно проверить ввод пользователя, взгляните на Zend_Validate и Zend_Filter

Кроме того, если под "тегами" вы подразумеваете теги HTML, я не буду ничего делать с теми, которые находятся на входе, но убедитесь, что выдолжным образом экранируйте / удалите их при выводе (посмотрите на htmlspecialchars())

Если вы хотите отобразить сообщение об ошибке, если ввод содержит теги HTML, и предполагая, что $comment являетсятело комментария, вы можете попробовать:

if(strip_tags($comment) !== $comment) {
    // It seems it contained some html tags
}
...