Рассмотрим следующие обстоятельства:Безопасность с использованием AJAX и установка innerHTML?
- Я посылаю запрос AJAX (без пользовательского ввода) в PHP, который запускает функцию.
- Функция возвращает строку необработанного HTML. Может быть что угодно - список ссылок, куча пустых divs, SVG для вставки встроенного текста, большая часть страницы ... В его создании не используются пользовательские входные данные.
- Я получаю строку в качестве ответа и вставляю ее в div .
- Я (в настоящее время и в идеале хотел бы продолжить), используя чистый JS - нет библиотек.
Принимая во внимание, что в JS существует определенный уровень неуверенности, насколько неуверенным является то, что я только что сделал?
OWASP XSS Cheat Sheet говорит, чтобы избежать всех «ненадежных данных». Является ли результат моего запроса AJAX ненадежным с учетом вышеуказанных обстоятельств? Является ли результатом какого-либо запроса AJAX как «ненадежного»?
Является ли вставка HTML таким образом плохой практикой? Если да, то что я должен делать вместо этого?
Редактировать прояснить несколько вещей:
- URL переменные в запросе AJAX только используется для запуска функции PHP на сервере. Никакие переменные не передаются этой функции вообще (в частности, я использую компонент com_ajax Joomla).
- Все возвращенного кода статизирован и написан мной.
Предполагая, что HTML, возвращаемый сервером, полностью сгенерирован вами и не содержит никакого ввода пользователя, это звучит безопасно для меня. –
Если вы доверяете своему программисту, который написал сценарий сервера, вам следует доверять ответ. – Barmar
Замените < and > на «" и используйте вместо bbcode –