让用户定义innerHTML的漏洞

时间:2011-04-29 01:56:54

标签: javascript html innerhtml

假设我有一个< textarea>和< div>当用户将html,CSS或他们想要的任何东西放入textarea时,他们的输入被设置为< div>的innerHTML。元素,使用javascript。

让用户定义< div>的内容有哪些漏洞?元件?

4 个答案:

答案 0 :(得分:2)

如果他们输入的内容没有离开页面,则没有比通过firebug或chrome检查员编辑DOM的风险更大的风险。如果您接受他们的输入然后按原样显示,那么这是一个巨大的安全风险,尤其是当其他用户在您的网站上时。

答案 1 :(得分:1)

如果您对内容进行编码以使其中的任何javascript都不会执行,那么它应该是安全的。

如果不这样做,则用户可以上传将在下次用户查看该页面时执行的javascript。

我想修改我的回复以考虑@Brigham评论。如果您正在处理类似div选项卡的innerHTML,如果您正在处理使用用户生成的值作为属性或在脚本标记内处理转义/编码将无效,则Escape仅可靠地工作。

我将向您推荐OWASP XSS指南(@Brigham最初引起我的注意)以获取更多信息:https://www.owasp.org/index.php/XSS_%28Cross_Site_Scripting%29_Prevention_Cheat_Sheet#Untrusted_Data

答案 2 :(得分:0)

用户可以进行跨站点脚本编写。它可以注入恶意客户端代码

查看http://en.wikipedia.org/wiki/Cross-site_scripting

答案 3 :(得分:0)

无论他们想要什么,都可以包含一个<script>标记,用于从自己的服务器中提取.js文件。然后,如果您向其他用户显示该内容,该脚本可以执行各种操作以从不知情的用户提取信息。

相关问题