我需要将文本从textarea粘贴到DOM中作为预览区域,就像您在发表评论时在Stackoverflow上获得的那样。
我允许用户插入任何和所有html标签,包括javascript标签。我知道这将允许嵌入式javascript和flash内容等,但我删除了所有这个服务器端,所以没有其他用户会看到,他们只看到纯文本。
但是,让用户在自己的页面中插入这些内容是否存在任何安全问题?
我的猜测是没有像firebug这样的工具会带来安全风险,但我不确定。
答案 0 :(得分:3)
但是,让用户在自己的页面中插入这些内容是否存在任何安全问题?
我看不到任何东西 - 无论如何,DOM在客户端的浏览器中是可以自由操作的。无论是使用像Firebug这样的工具还是使用JavaScript函数,都无关紧要。
只要未在其他用户的浏览器中显示未过滤的数据,我认为您可以安全地执行此操作。
答案 1 :(得分:1)
实际上在极少数情况下,这可能是一个问题。这在很大程度上取决于这个特殊功能的工作原理,但我可以想象首先使用CSRF在预览区域“发布”一些恶意的javascript / ajax,然后使用它来窃取cookie,更改帐户密码或任何你喜欢的内容。 / p>
所以攻击会像这样;我向用户发送了一个指向“合法”网站的链接。在该网站上有一个隐藏的有效负载(例如,在GET的情况下通过img标签,或者具有POST的自动提交形式的隐藏iframe),它使用XSS有效负载静默地将用户重定向到您的网站,然后由用户执行通过预览区域中的注入,例如记录用户的cookie,而他却不知道。
这一切都取决于您的预览功能的工作原理,以及您是否使用表单令牌等,但重点是它实际上可能是一个问题。