gpt4 book ai didi

javascript - 执行或执行 javascript : URLs ever work in CSS, 如果是,是否可以阻止?

转载 作者:行者123 更新时间:2023-12-03 09:36:14 24 4
gpt4 key购买 nike

所以我今天看到一段代码,吓坏了:

<p style='background-image: url("javascript:alert(&apos;foo&apos;);");'>Hello</p>
  • 是否可以通过这种方式在 CSS 中执行 javascript? (当我在一个干净的 Firefox 配置文件上测试它时它没有工作,但也许我在这里犯了一些愚蠢的错误,但这个概念是有效的。)
  • 如果是这样,有什么方法可以防止这种情况发生,是使用 HTTP header 还是通过 HTML 本身的声明(例如,当从另一台服务器获取 CSS 文件时)?
  • 如果不是,这是不可能的还是改变了?

最佳答案

当前CSS spec表示只能在 background-image 中使用“有效图像格式”:

In some cases, an image is invalid, such as a ‘<url>’ pointing to a resource that is not a valid image format. An invalid image is rendered as a solid-color ‘transparent’ image with no intrinsic dimensions. [...] If the UA cannot download, parse, or otherwise successfully display the contents at the URL as an image, it must be treated as an invalid image.

The spec对返回有效图像数据的 javascript: url 是否有效——尝试构建一个 url 将是一个有趣的练习! -- 但如果确实如此,我会非常惊讶。

User agents may vary in how they handle invalid URIs or URIs that designate unavailable or inapplicable resources.

(正如@Kaiido 在下面指出的那样,SVG 中的脚本在这种情况下也不会运行,所以我希望整个 javascript: 协议(protocol)被视为“不适用的资源”。)

关于javascript - 执行或执行 javascript : URLs ever work in CSS, 如果是,是否可以阻止?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46709901/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com