可以从链接的样式表中执行 XSS 攻击吗?

发布于 2024-11-16 20:24:36 字数 257 浏览 0 评论 0 原文

可能的重复:
CSS 样式表中的跨站点脚本

我正在考虑允许用户创建自己的样式表CSS 通过链接样式表(不是嵌入样式标签)。可以从样式表执行 XSS 攻击吗?

谢谢

Possible Duplicate:
Cross Site Scripting in CSS Stylesheets

I'm considering allowing users to create their own CSS through linked stylesheets (NOT embedded style tags). Can an XSS attack be performed from a stylesheet?

Thanks

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

德意的啸 2024-11-23 20:24:36

Internet Explorer 中,Firefox 和其他浏览器,您可以通过在 CSS 中指定 javascript: URL 来将 JavaScript 嵌入到 CSS 中url() CSS 语句。

即使您设法过滤掉这些内容,攻击者仍然可以使用高级 CSS 完全重新设计页面(包括其所有文本内容)。因此,欺骗用户执行愚蠢的操作变得非常容易,这就是 XSS 的含义。例如,您可以让删除帐户按钮填满整个窗口,并将其文本更改为“单击此处赢取 1000 美元”。

您可以将选定的几个属性列入白名单(text-*font-*colorbackground(只有颜色和渐变,没有 URL 或其他花哨的东西)),但您必须拒绝任何不符合这些限制的内容。

In Internet Explorer, Firefox and other browsers you can embed JavaScript in CSS by specifying a javascript: URL in a url() CSS statement.

Even if you manage to filter these out, an attacker can still completely redesign the page (including all of its textual content) with advanced CSS. Therefore, it becomes extremely easy to trick users to execute stupid actions, which is what XSS is about. For example, you could make the Delete Account button fill the entire window and change its text to "Click here to win 1000$".

You can white-list a select few properties (text-*, font-*, color, background (only colors and gradients, no URLs or other fancy stuff)), but you'll have to reject anything that does not match these restrictions.

琉璃繁缕 2024-11-23 20:24:36

有趣的问题。我可以想象样式表能够删除或隐藏可能存在安全问题的元素。您还可以使用 :after 和 :before 在某个元素之后插入文本,因此您可能需要小心这一点。

或者,我认为您应该首先包含他们的样式表,这样他们就不会突然更改您的所有字体或全局内容。

Interesting question. I can imagine the style sheet having the ability to remove or hide elements which can be a security problem. You can also insert text after a certain element using :after and :before so you might want to be careful about that.

Alternately I think you should include their style sheet first so that they don't suddenly change all your fonts or something global.

灯下孤影 2024-11-23 20:24:36

这些都是老黑客,但可能仍然可以在旧浏览器中工作,例如您可以将 javascript 协议放在 href attr 中。

http://ha.ckers.org/xss.html
(搜索风格)

those are old hacks but might still work in older browser, for example you can put javascript protocol in href attr.

http://ha.ckers.org/xss.html
(search for style)

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文