在我的java应用程序中,我正在阻止XSS攻击。我想在我有句柄的HttpServletRequest对象中编码URL和隐藏字段参数。
我将如何做到这一点?
答案 0 :(得分:1)
要在HTML页面上正确显示用户输入的数据,您只需确保通过String#replace
或类似方式将任何特殊HTML字符正确编码为实体。好消息是你需要编码很少(为此目的):
str = str.replace("&", "&").replace("<", "<");
如果您愿意,也可以替换>
,但不需要。
这不仅是因为XSS,还因为字符正确显示。您可能还希望确保将普通拉丁语集之外的字符转换为适当的实体,以防止字符集问题(UTF-8与Windows-1252等)。
答案 1 :(得分:1)
不要那样做。你让它变得更加复杂。只在显示期间逃脱它。请参阅您在其他主题中的回答:Java 5 HTML escaping To Prevent XSS
答案 2 :(得分:0)
您可以使用Apache Jakarta Commons Lang库中的StringEscapeUtils
http://www.jdocs.com/lang/2.1/org/apache/commons/lang/StringEscapeUtils.html