我听说一个网站可能会出现危险的XSS攻击,例如eval
允许用户输入JS。我打算为我的文本扩展扩展名(类型一些文本 - >按热键 - >文本扩展)做类似的事情。Chrome扩展程序,内容脚本和XSS攻击
我将允许用户粘贴一个普通的html字符串文本,然后以不错的格式化方式查看它。它旨在用于粗体,下划线等。为此,我将在div
中使用.innerHTML
。我非常了解,恶意用户会将邪恶的<script>
元素置于纯文本中,并试图破坏我的扩展。这是我所关心的。
我的问题:
- 我的扩展将以此为HTML数据,并将其粘贴到其他网站内容编辑的要素(如Gmail,利用
innerHTML
与内容脚本)文本增加。 XSS也可能会影响这些网站。我应该关心这些网站吗? Imho,他们有责任清理他们的内容。 - 我自己的扩展本身不会与任何服务器通信,除了铬同步存储服务器,其中它将以纯文本形式存储此数据。但是,我仍然在我的
options.html
页面中使用innerHTML
(提供交互式文本扩展操场)。 XSS也会以任何方式影响我的扩展吗?根据我的理解,他们(黑客)将使用拷贝的我的扩展文件自己的电脑与自己的浏览器。我无法分辨出他们在这个意义上可能造成的伤害。
我希望有人有两个镀铬的扩展和XSS如何工作可以抛出一些轻知识。如果我错过了任何细节/不清楚,请告诉我。
更新:我刚刚意识到脚本元素不是通过innerHTML执行的,只有内联事件处理程序。我知道使用CSP可以帮助我防止内部事件处理程序在我的扩展中执行。但是,其他网站,其中我的扩展将粘贴代码。他们是否也不执行内联事件处理程序js函数?在扩展
@wOxxOm感谢您的输入!但MDN页面清楚地显示'const name =“”; el.innerHTML = name; //显示警报可能是邪恶的。我认为这是我所关心的。我会更新我的问题。 –
@wOxxOm谢谢!对不起,重复我的问题,但也许我只是无法得到第二件事。 “但不会在扩展页面上工作”我明白这一点。但是它也不适用于我在不同的网站上使用内容脚本插入的html,比如gmail?从技术上讲,gmail不是一个扩展页面:/ –
那么,安全敏感站点应该使用CSP,它完全禁止内联js,或者要求通过散列和来签名。无论如何,我不是XSS的专家,所以希望别人能完全回答这个问题。 – wOxxOm