В кодеигниторе $this->input->post()
(с xss_clean=true
)
дает этот вывод
[removed]alert('Hello')[removed]
для этой входной строки
<script>alert('Hello')</script>
Я хочу вывод без содержания [removed]
т.е. alert('Hello')
Наконец я закончил редактирование system/core/security.php
файл.
От
$str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", '[removed]', $str);
к
$str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", '', $str);
Это делает работу.
Я просто спрашиваю, есть ли альтернативный способ сделать это без изменения системных файлов?
Дополнительно
Должен ли я использовать codeigniter
«s xss_clean
функция?
Да, попробуйте расширить класс из CI_Security и написать новую функцию:
protected function _do_never_allowed($str)
это будет более ООП способ.
РЕДАКТИРОВАТЬ:
CodeIgniter позволяет расширять основные классы. Смотрите эту ссылку:
Расширение CodeIgniter Security.php для включения ведения журнала
Вы никогда не должны редактировать файлы ядра.
Вместо этого вы должны просто расширить класс Security из приложения.
Создайте файл с именем «MY_Security.php» в ./application/core и расширьте класс Security.