2016-12-03 6 views
0

Я установил Ajaxy Live Search Plugin v3.0.7 в моей WordPress, но при поиске что-то вроде:Wordpress - XSS с использованием Ajaxy поиска Live Search Plugin

<script>alert('123');</script> 

Я могу видеть предупреждение в моем браузере.

Использование поджигатель я могу видеть, что при вводе в поле поиска Я звоню

/wp-admin/admin-ajax.php 

посылает эти параметры:

action = ajaxy_sf 
search = false 
sf_value = <script>alert('123');</script> 

Как я могу избежать этой проблемы на моем поле поиска? Спасибо заранее!

ответ

0

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

В любом ответе вывод должен быть закодирован в соответствии с контекстом. В зависимости от того, как работает ваш плагин, он может либо создавать частичный html на сервере, либо использовать DOM mainpulation в браузере при отправке запросов AJAX.

Если он создает частичный html и вставляет его на страницу в качестве результатов поиска, представление, которое генерирует частичный html, должно быть исправлено путем добавления выходной кодировки (то есть htmlspecialchars() в php, но есть и другие варианты).

Если это просто запрос ajax, а страница dom обрабатывается в javascript, приложение должно обязательно вставлять переменные как текстовые узлы, а не целые dom-поддеревья с потенциальными узлами скрипта.

В любом случае, я думаю, это должно быть сделано плагином. Если он не написан правильно и уязвим для XSS, в значительной степени единственный способ его исправить - это исправить сам плагин.