Java - XSS - HTML-кодировка - Ссылка на символьную сущность против ссылки на числовую - PullRequest
3 голосов
/ 05 марта 2010

Мы искали способы HTML-кодирования наших страниц JSP для противодействия XSS.

Сайт OWASP показывает How_to_perform_HTML_entity_encoding_in_Java

В статье рассказывается о сущности, кодирующей "большую 5", т. Е.

  21          {"#39", new Integer(39)}, // ' - apostrophe
  22          {"quot", new Integer(34)}, // " - double-quote
  23          {"amp", new Integer(38)}, // & - ampersand
  24          {"lt", new Integer(60)}, // < - less-than
  25          {"gt", new Integer(62)}, // > - greater-than

т.е.

<script>

кодируется как

  &lt;script&gt;

но в примере кода Java, включенном в статью, используется кодировка числовой ссылки, т. Е.

<script></script>

кодируется как

 &#60;script&#62;&#60;&#47;script&#62;

Есть ли причина для использования ссылок на символы вместо ссылок на сущности? Что лучше и почему?

1 Ответ

2 голосов
/ 05 марта 2010

Они такие же, как защита себя от XSS. Единственными реальными практическими различиями являются удобочитаемость и размер.

...