CodeIgniter дезинфицирует значения POST - PullRequest
0 голосов
/ 08 декабря 2011

У меня есть текстовая область, в которую я пытаюсь добавить код для вставки YouTube и другие теги HTML.$this->input->post преобразует теги <iframe> в &lt; и &gt; соответственно, но не в теги <h1> и <h2>.

Есть идеи, как сохранить эти значения?

Ответы [ 4 ]

1 голос
/ 08 декабря 2011

Если у вас есть только небольшое количество форм, в которых нужно разрешить использование iframe, я бы просто написал функцию для восстановления iframe (при проверке того, что это допустимый код для встраивания YouTube).

Вы также можете отключить global_xss_filtering в своей конфигурации (или не реализовывать его, если вы его используете), но это не идеальное решение (отключение всей вашей безопасности, чтобы заставить что-то работать, вообще ужасная идея) .

$config['global_xss_filtering'] = FALSE;

Чтобы увидеть все отфильтрованные теги, загляните в класс CI_Input и найдите переменную '$naughty'. Вы увидите список с разделителями-символами (ничего не меняйте в этом классе).

0 голосов
/ 09 декабря 2011

В этом случае используйте $_POST вместо $this->input->post, чтобы получить исходное значение текстовой области, а затем используйте HTML Purifier , чтобы очистить содержимое без потери нужного тега <iframe>.1006 *

Для получения подробной информации вам необходимо проверить документацию HTML-очистителя.Пожалуйста, проверьте эту конкретную страницу документации о "Встраивании видео YouTube" .

0 голосов
/ 08 декабря 2011

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

Это позволит вам использовать как URL, так и код для встраивания. Кроме того, хранение только идентификатора занимает меньше места в вашей базе данных, и вы можете написать вспомогательную функцию для вывода встроенного кода / url.

0 голосов
/ 08 декабря 2011

Почему бы вам не избежать автоматической очистки ЭК и использовать что-то вроде htmlspecialchars($_POST['var']);? Или создайте вспомогательную функцию для очистки URL-адресов YouTube ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...