当前位置:  开发笔记 > 程序员 > 正文

在Struts 2中使$ {}运算符XSS安全(与tapestry相同)

如何解决《在Struts2中使${}运算符XSS安全(与tapestry相同)》经验,为你挑选了1个好方法。

如http://www.disasterarea.co.uk/blog/xss-vulnerabilities-in-web-frameworks-2/中所述

在struts 2中$ {}不是xss安全的,而在tapestry 5中是安全的.

我不是Tapestry的人,但我想知道上面是否正确.

据我所知,它${}是JSLT的一部分,它不依赖于任何Web框架.因此,如果上面的句子是正确的并且${}在挂毯中是安全的XSS,我们怎样才能在struts 2中使其安全.

更新:

为了测试它我运行struts2-showcase应用程序,打开modelDriven\modelDrivenResult.jsp并添加以下行:

Am I safe  ${name} 

现在,当您运行展示案例并输入gangester名称时,您可以看到警报!



1> Andrea Ligio..:

    Struts2 默认自动转义;

    默认情况下,JSTL会自动转义;

    JSP EL ${name}不会被转义.

您可以使用显式转义它${fn:escapeXml(name)},或者设置默认情况下执行的转义,创建自定义ELResolver,如本文中所述:

ELResolver逃避JSP EL值以防止跨站点脚本


@AlirezaFattahi我给你的原因是:Struts 2使用JSP.JSP EL不会转义通过`$ {}`呈现的值.**Tapestry不使用JSP.**
推荐阅读
放ch养奶牛
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有