Функция xss_clean()
не удаляет все HTML, она удаляет / заменяет определенные вещи, которые считаются опасными, например теги <script>
.
http://codeigniter.com/user_guide/libraries/security.html
Фильтр XSS ищет общепринятые методы для запуска Javascript или других типов кода, которые пытаются захватить куки или совершить другие вредоносные действия. Если обнаруживается что-либо запрещенное, оно становится безопасным путем преобразования данных в символьные объекты.
Кто-то, вставляющий тег <p>
на вашу страницу, хотя, возможно, нежелателен, на самом деле не является эффективной атакой. Вам нужно будет указать, что вы хотите с ним делать. Во многих случаях вы захотите вывод HTML, который был xss_clean()
ed.
Звучит так, будто вы хотите либо htmlspecialchars()
, либо strip_tags()
(примечание: эти две совершенно разные вещи). Если вы хотите закодировать HTML, вы также можете использовать CI html_escape()
:
echo html_escape($this->input->post('question'));
Если вы хотите выводить HTML, а не объекты, просто используйте фильтр XSS:
echo $this->input->post('question', TRUE);
echo xss_clean($user_input);