This question (答案链接 to this post )讨论了在 IE 和 Firefox 中使用各种 hack 执行从 CSS 文件调用的任意 JavaScript,例如使用 expression()
。 (评论中有人澄清,这些技术的正确名称是 Firefox 中的 XBL 和 IE 中的 HTC)
如何在 Chrome 中仅使用客户端代码并使用 native 方法而不使用任何其他库来执行相同的操作(从 CSS 执行任意不安全的 JS)?
最佳答案
CSS 中的 JavaScript 在现代浏览器中是不可能的 - 除了任何当前支持的 URL 参数(例如 background-image
),其中 javascript:
URL 将导致任何脚本被执行。
参见 this answer ,但我已在此处进行了总结。
moz-binding
在 Firefox 2 和 3 中是可能的,并且发现的缺陷后来得到缓解,但是在未来的版本中不再支持。
自 Internet Explorer 10 起不再支持 HTML 组件,因此开发依赖于此技术的网站意义不大。
CSS 表达式仅分别在 IE5/7 怪癖/标准模式下受支持。
您是要创建漏洞利用程序,还是要使用 CSS 实现某些功能要求?如果是前者,请专注于 URL 参数或将 CSS 上下文分解为 JavaScript。此外,UI 纠正可能会诱骗用户相信您注入(inject)的网站内容是权威的。如果是后者,则走另一条路而不是硬塞 CSS 来实现脚本执行。
关于javascript - 在 Chrome 中从 CSS 执行 JavaScript,类似于 Firefox 和 IE,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41372706/