HttpServletRequest - 编码url和隐藏字段参数的快速方法

时间:2010-02-23 15:30:07

标签: java servlets xss

在我的java应用程序中,我正在阻止XSS攻击。我想在我有句柄的HttpServletRequest对象中编码URL和隐藏字段参数。

我将如何做到这一点?

3 个答案:

答案 0 :(得分:1)

要在HTML页面上正确显示用户输入的数据,您只需确保通过String#replace或类似方式将任何特殊HTML字符正确编码为实体。好消息是你需要编码很少(为此目的):

str = str.replace("&", "&amp;").replace("<", "&lt;");

如果您愿意,也可以替换>,但不需要。

这不仅是因为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