【发布时间】:2010-02-25 14:53:34
【问题描述】:
通过简单地转换以下(“大 5”):
& -> &
< -> <
> -> >
" -> "
' -> '
你会阻止 XSS 攻击吗?
我认为您也需要在字符级别上列入白名单,以防止 certain attacks,但 following answer 表示它过于复杂。
编辑这个page详细信息it does not prevent more elaborate injections, does not help with "out of range characters = question marks" when outputting Strings to Writers with single byte encodings, nor prevents character reinterpretation when user switches browser encoding over displayed page.本质上只是转义这些字符似乎是一种非常幼稚的方法。
【问题讨论】:
-
... 维基百科说“值得注意的是,虽然被广泛推荐,但简单地对五个 XML 有效字符执行 HTML 实体编码并不总是足以防止多种形式的 XSS。编码可以是很棘手,强烈建议使用安全编码库。”并引用了这篇文章,虽然我找不到那篇文章中的什么证明了这个说法:owasp.org/index.php/…
-
只有当您不知道自己在做什么或在不同(错误)的地方做这件事时才比较棘手。只要与它保持一致。在视图层中(重新)显示所有用户控制的输入(请求 URL、请求参数、请求正文等..等等.. 来自用户的所有内容)时仅编码/转义一次。就是这样。
-
嘿池 - 您愿意更改首选答案吗? @bobince 的答案更好,并且有更多的支持。