Нужно ли экранировать вывод simplepie $ itme-> g_content () при отображении на странице?

У меня есть плагин WordPress, который читает канал RSS и выводит его в браузер на странице администратора. В плагине он использует стандартный шаблон feed.php из WordPress (wp-includes / feed.php), который использует SimplePie для получения канала через WordPress.

Страница перебирает элементы фида и использует $item->get_title() а также $item->get_content() выводить заголовок и содержимое элемента через прямое эхо на страницу.

У меня был пользователь, который связался со мной, чтобы сообщить, что на его сайте был проведен аудит безопасности, и он не прошел, потому что мы использовали $item->get_content() и не экранируют его перед выводом в браузер, и это XSS-уязвимость, потому что HTML читается с веб-сайта поставщика и его необходимо экранировать.

Это правильно?

Во всей документации по использованию get_content() функции, они показывают эхо $item->get_content() Результаты.

Может кто-то пролить свет на это, чтобы я мог лучше решить эту проблему либо с командой аудита безопасности и / или с пользователем, либо корректно обновить плагин, если его нужно экранировать.

Спасибо!
дон

1

Решение

Аудит не прав. SimlePie делает избежать содержимого внутри. Если вы посмотрите на источник класса SimplePie, вы увидите это свойство, которое определяет теги, которые будут удалены:

public $strip_htmltags = array('base', 'blink', 'body', 'doctype', 'embed', 'font', 'form', 'frame', 'frameset', 'html', 'iframe', 'input', 'marquee', 'meta', 'noscript', 'object', 'param', 'script', 'style');

Так <script> теги удаляются — поэтому XSS-атака невозможна.

Это поведение по умолчанию для SimplePie, поэтому, за исключением случаев, когда вы намеренно приказали ему работать в быстром режиме, вызвав: $feed->set_stupidly_fast(true) (как видите, имя функции говорит само за себя :)) или путем вызова $feed->strip_htmltags(true) ; он будет работать в безопасном режиме.

Из документации SimplePie:

SimplePie защищает от вредоносных каналов путем очистки данных.

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]