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

发布于 2024-08-24 03:00:44 字数 922 浏览 1 评论 0原文

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

OWASP 网站展示了 How_to_perform_HTML_entity_encoding_in_Java

文章讨论了“Big 5”ie 的实体

  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;

是否有理由使用字符引用而不是实体引用?哪个最好,为什么?

We've been looking for ways to HTML encode our JSP pages to counter XSS.

The OWASP site shows How_to_perform_HTML_entity_encoding_in_Java

The article talks about entity encoding the "Big 5" i.e.

  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

i.e.

<script>

is encoded as

  <script>

but the Java code sample included in the article uses numeric reference encoding i.e.

<script></script>

is encoded as

 <script></script>

Is there a reason for using character references over entity references? Which is best and why?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

遗忘曾经 2024-08-31 03:00:44

就保护自己免受 XSS 侵害而言,它们是相同的。唯一真正的实际差异是可读性和大小。

They're the same as far as protecting yourself from XSS is concerned. The only real practical differences are readability and size.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文