XSS - 通过在 DOM 元素上设置 innerHTML 来加载外部 HTML 是否可以防止攻击?
如果我需要加载一些不受信任的外部 HTML 内容并将其呈现在 DOM 上,使用 innerHTML
属性是否足以防范恶意脚本?
通过我自己的测试和这个 article、 标签通过
innerHTML
设置为 DOM 中的现有元素(主元素或影子元素) ) 不被执行。那么即使脚本存在,执行它难道就不能避免安全风险吗?
对于附加措施,它还可以帮助查找所有 标签并在 DOM 中删除它们。这还有必要吗?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
不,这还不够好。内联处理程序仍然可以执行 - 最值得注意的是,那些将立即执行的处理程序。例如:
任何东西都可以放入这样的内联处理程序属性中,包括加载其他恶意脚本。
最好彻底地做。在考虑渲染之前删除所有
标记和内联处理程序。
No, that's not good enough. Inline handlers can still execute - most notably, those that'll execute immediately. For example:
And anything can be put into such an inline handler attribute, including loading other malicious scripts.
Best to do it thoroughly. Remove all
<script>
tags and inline handlers before even thinking about rendering.