Java-java web中如何防止XSS(跨站脚本漏洞)

发布于 2016-12-22 13:09:52 字数 259 浏览 1319 评论 2

在url中通常会传递一些参数,例如:http://www.baidu.com/?world=aaa,恶意的攻击是在参数中添加特殊字符,如:.%22%3C/script%3E%3Cscript%3Ealert(111);%3C/script%3E,执行脚本。java中可以用org.apache.commons.lang.StringEscapeUtils提供的Escape函数,但是这个函数会将有所的特殊字符都给过滤了,我要传递url=/index这样的参数就不行了。有没有好的方式防止这种恶意的代码呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

偏爱自由 2017-04-13 11:28:14

ls说的我不太明白,你在输出的时候转义,那传参携带的JS神马的不是还是执行了吗?能不能再仔细的解释一下?难道你的意思是:把返回给攻击者的数据进行转义?除去携带出来的cookie神马的吗?

偏爱自由 2017-01-18 16:46:55

反过来做就可以了,把内容输出到页面的时候再调用StringEscapeUtils.escapeHtml来转义要输出的内容,不要在后台处理的时候调用,因为后台需要真实的数据,真正到输出的时候才需要做转义,目前很多成熟的框架都是这样的,例如淘宝的webx3。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文