2015-04-02 124 views
-1

如果用户输入javascript:alert('e');在我的应用程序的评论部分,然后在重新加载页面时显示警报。如何在java中验证这些用户输入。如何避免XSS攻击

+1

从这里开始[OWASP XSS备忘单](https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet) – SubOptimal 2015-04-02 14:01:40

+1

这个问题可能更适合http://security.stackexchange。 com/ – LittlePanda 2015-04-02 14:31:00

+0

使用内置的转义机制,如[](http://docs.oracle.com/javaee/5/jstl/1.1/docs/tlddocs/c/out.html)或[ ](http://docs.oracle.com/javaee/5/javaserverfaces/1.2/docs/tlddocs/h/outputText.html)来显示您的评论。 – VGR 2015-04-02 14:38:04

回答

1

修复XSS攻击的标准行业方法是对白名单中的所有应用程序输入进行编码。确保没有超出预定的输入范围。这通常是使用扫描所有输入的正则表达式来完成的。

此外,为了保护您的应用程序免受反映的XSS攻击,还应该考虑服务器端的编码输出。

看看ESAPI和antisamy框架提供的API来协助这项工作。

Antisamy Project

ESAPI Security API

+0

我知道,我需要验证输入,但如何做到这一点。我需要将ESAPI jar放入我的项目中吗? – user3592257 2015-04-02 14:18:54

+0

是的,jar需要在你的类路径中,这样你才能调用ESAPI API – 2015-04-02 14:20:32

0

你写用户输入返回到新的页面每次,最简单的办法就是逃跑的内容。