当脚本显示在HTML文本区域中时,java是否可能进行XSS攻击?
我的UI中有一个HTML文本区(用于基于Java的web应用),用户可以在其中输入任何值。保存后,它将显示在浏览器的文本区域(已禁用)
如果用户在textarea中以自由文本的形式输入任何脚本,它是否会作为脚本执行(即使该值显示在textarea中,而不是以标签/文本的形式显示)
你可以在下面搜索框中键入要查询的问题!
我的UI中有一个HTML文本区(用于基于Java的web应用),用户可以在其中输入任何值。保存后,它将显示在浏览器的文本区域(已禁用)
如果用户在textarea中以自由文本的形式输入任何脚本,它是否会作为脚本执行(即使该值显示在textarea中,而不是以标签/文本的形式显示)
# 1 楼答案
这取决于如何设置
textarea
的值。在HTML代码中,textarea
的内容是元素中的文本我创建了一个JSFiddle to demonstrate以各种方式更改
textarea
的内容这将创建两个
textarea
元素,其中一个是脚本(save),另一个是空的在上一个测试中,我关闭输入中的
textarea
,然后附加脚本。 有趣的是,在本例中设置innerHTML
是安全的:It doesn't execute scripts inserted in this way所以,只要你使用JavaScript,你就相当安全。但通常,在服务器上呈现页面的DOM,然后必须确保正确转义
textarea
的内容,因为:将执行脚本
注意:我还试图演示
document.write()
,但这在JSFIDLE中是不允许的。我很确定document.write()
很容易受到同样的攻击