Java - XSS - HTML编码 - 字符实体引用与数字实体引用

时间:2010-03-05 01:35:33

标签: java html encoding xss

我们一直在寻找对JSP页面进行HTML编码以对抗XSS的方法。

OWASP网站显示How_to_perform_HTML_entity_encoding_in_Java

文章讨论了编码“Big 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 个答案:

答案 0 :(得分:2)

就保护自己免受XSS问题而言,它们是相同的。唯一真正的实际差异是可读性和尺寸。