Codeigniter input-> post () удаляет html-теги? - PullRequest
3 голосов
/ 23 февраля 2012

Использует ли $ this-> input-> post ();в Codeigniter удалите все html и javascript, которые пользователь веб-сайта мог ввести, или вам нужно использовать htmlspecialchars ();

Ответы [ 4 ]

8 голосов
/ 23 февраля 2012

$this->input->post() содержит только данные публикации. .

Вы всегда можете вызвать $this->input->post(NULL, TRUE); в соответствии с инструкциями, чтобы вернуть данные, отфильтрованные через фильтр XSS.

Вы можете увидеть здесь , что именно происходит, если он в основном перестраивает массив $ _POST, используя fetch_from_array .Это вызывает модуль безопасности для XSS $this->security->xss_clean($array[$index]); (если для XSS-фильтра задано значение true).

Если есть что-то, что XSS-фильтр не улавливает, ваш код будет открыт.

Обычно я никогда не фильтровал бы свои необработанные входные данные, как это, до того, как они будут использованы , а скорее только тогда, когда они собираются использоваться, и таким конкретным способом.

Вредоносное содержимоеЭто почти невозможно предотвратить, если вы фильтруете его при вводе, потому что он предназначен для работы в качестве вывода.

  • При печати в HTML-документе убедитесь, что ваши специальные символы в кодировке html
  • При вызове SQL убедитесь, что вы запускаете параметризованные запросы без использования SQL-инъекций
  • Когда вы делаете системные вызовы, не позволяйте им контролировать вашу систему.

Как уже упоминалось в комментариях к моему ответу, входной фильтр XSS является неадекватной попыткой предотвращения атак.

В случае сомнений обратитесь к OWASP.

1 голос
/ 23 февраля 2012

CodeIgniter имеет класс безопасности, и вы можете использовать его в любое время.Также вы можете добавлять htmlspecialchars () в любое время и в любом месте.

0 голосов
/ 23 февраля 2012

Это все в документах .

Для возврата массива вызовов всех элементов POST без каких-либо параметров.

Для возврата всех элементов POST и передачиони через фильтр XSS устанавливают первый параметр NULL при установке второго параметра на логическое значение;

Функция возвращает FALSE (логическое значение), если в POST нет элементов.

$this->input->post(NULL, TRUE); // returns all POST items with XSS filter 
$this->input->post(); // returns all POST items without XSS filter

То же самое с отдельными предметами и запросами GET.

0 голосов
/ 23 февраля 2012

Функция post() принимает второй аргумент, который передает входные данные через XSS-фильтр , который очищает все html и javascript.

$this->input->post('some_data', TRUE);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...