#codeigniter #xss #htmlpurifier
#инициатор кодирования #xss #htmlpurifier #codeigniter
Вопрос:
В настоящее время я использую фреймворк CodeIgniter и стремлюсь усилить защиту XSS с помощью HTMLPurifier (http://htmlpurifier.org /).
Правильно ли я понимаю, что вы хотите «очистить» данные в post, чтобы они были очищены перед их вставкой в базу данных? Или мне запустить его перед отображением в представлении?
Если да, хочу ли я запускать HTMLPurifier в каждой отдельной публикации, которая имеет место? Поскольку приложение содержит много форм, мне бы не хотелось выборочно выбирать, что очищается, а что нет — предполагая, что я могу перехватывать все сообщения, правильно ли это? Конечно, я все равно проверяю некоторые поля (например, адреса электронной почты, числовые значения и т.д.).
Ответ №1:
Используется $this->input->post()
для получения $_POST
данных. Codeigniter автоматически фильтрует его, если для глобального фильтра xss установлено значение true.
Смотрите документы:http://codeigniter.com/user_guide/libraries/input.html
Редактировать: для уточнения
Да, вы должны фильтровать перед вставкой в БД и да, вы должны фильтровать весь пользовательский ввод.
Быстрый поиск в Google,http://www.google.com/search ?q = codeigniter htmlpurifier, привело к этой странице:http://codeigniter.com/wiki/htmlpurifier который является вспомогательным средством для htmlpurifier. Что касается сбора всех данных $ _POST: вы должны что-то сделать с данными, верно? В ваших моделях, когда вы что-то делаете, просто сделайте purify() частью этого процесса:
$postdata = purify($_POST);
Комментарии:
1. Также посмотрите на более подробное объяснение: codeigniter.com/user_guide/libraries/security.html
2. XSS-фильтрация CI, хотя и хороша, неадекватна. HTMLPurfier считается намного более мощным и безопасным.