защита xss и очиститель html

#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 считается намного более мощным и безопасным.