我想保护我的网站表单xss,并且我想确保我的所有数据都是正确和一致的,所以我不想允许将任何脚本添加到我的数据库,那是因为我的数据可能会被其他Web服务使用,所以我想确保我的数据是正确的,不会给其他人带来任何问题。保护jsp页面再次xss
我只想在数据的输入中进行验证,而不是在输出中进行验证,因此我只进行一次验证,而且我也确信在我的数据库中不存在任何脚本。
编辑:请检查我添加的最后一条评论。
我想保护我的网站表单xss,并且我想确保我的所有数据都是正确和一致的,所以我不想允许将任何脚本添加到我的数据库,那是因为我的数据可能会被其他Web服务使用,所以我想确保我的数据是正确的,不会给其他人带来任何问题。保护jsp页面再次xss
我只想在数据的输入中进行验证,而不是在输出中进行验证,因此我只进行一次验证,而且我也确信在我的数据库中不存在任何脚本。
编辑:请检查我添加的最后一条评论。
使用一些过滤器来清理HTTP请求数据。
您可以去jsoup,这是非常方便的:
String unsafe = "<p><a href='http://example.com/' onclick='stealCookies()'>Link</a></p>";
String safe = Jsoup.clean(unsafe, Whitelist.basic());
// now: <p><a href="http://example.com/" rel="nofollow">Link</a></p>
参考:重复的http://jsoup.org/cookbook/cleaning-html/whitelist-sanitizer
总之,可以编写滤波器,其确实的用户输入的适当的转义(地图相关URL映射)。有可能是现成的插件来做到这一点,但我不知道。
您可以参考本主题XSS prevention in JSP/Servlet web application
使用$ {fn:escapeXml(param.foo)}作为@BlusC说,允许'<','>',',“被插入到分贝,我以前试过,并且它不工作! – palAlaa 2010-11-05 18:38:04
有commons lang API你可以使用编码和解码:http://commons.apache.org/lang/index.html – ch4nd4n 2010-11-05 19:08:07
@Alaa:它阻止用户输入的HTML在视图中被逐字解释,HTML不会在数据库中解释这完全没有伤害。数据库只能理解SQL(您希望防止SQL注入攻击,但这是一个不同的主题)。 XSS转义需要在**输出**上完成,而不是在**输入**上完成。 'c:out'和'fn:escapeXml()'完全一样。 @ ck-:我看不出过滤器在这方面的用处。 – BalusC 2010-11-05 21:23:26
地块位置:http://stackoverflow.com/questions/tagged/jsp+xss – BalusC 2010-11-05 21:25:30
我编辑我的问题,请检查它。 – palAlaa 2010-11-24 01:01:38
然后这是你想要的那个:http://stackoverflow.com/questions/3587199/how-to-purify-html-code-to-prevent-xss-attacks-in-java-or-jsp它在列表中的重复。 – BalusC 2010-11-24 02:35:19