【问题标题】:What is CSS injection and how to prevent it?什么是 CSS 注入以及如何防止它?
【发布时间】:2022-01-02 18:42:19
【问题描述】:

我听我的朋友谈论过这个名为“CSS 注入”的漏洞 但是,我不知道这是什么,我一听到就想,怎么可能使用 CSS 进行任何恶意活动或攻击?

所以我想知道这个“CSS 注入”漏洞是什么以及如何防止它。

【问题讨论】:

标签: css security penetration-testing


【解决方案1】:

这是什么?

CSS 注入意味着攻击者设法将恶意 CSS 代码上传到您的网站,这些代码将在您的访问者浏览器上运行。

危险吗?

写在 2022 年,NO,CSS 注入几乎不会影响任何人,因为浏览器已经克服了这个问题,但 请注意,一些用户使用旧浏览器可能会受此影响。

我应该做点什么吗?

是的你应该,即使它目前不是真正的风险,你应该防止攻击者向你的网站注入恶意 CSSJavaScriptJavaScript 非常重要,因为最近批量利用了一些漏洞,大多数用户还没有将浏览器更新到最新版本。

如何保护?

您应该始终过滤用户输入以防止恶意注入,但额外的保护层是:

使用 CSP Header (Content-Security-Policy) 解决所有这些问题,它允许您防止浏览器执行恶意您网站上的代码。

apache htaccess 文件中添加以下内容,但应该启用 mod_headers

Header set Content-Security-Policy "default-src 'self';script-src 'self';style-src 'self'; object-src 'none'; frame-ancestors 'none'; form-action 'self';  base-uri 'self';"

请注意,如果您使用来自其他域的 CSSJavaScript,则无法使用该代码以上。

欲了解更多信息并了解代码中每个单词的含义,请访问MDN CSP

编辑:

CSS 注入的最简单示例是当攻击者设法使用 CSS 代码注入您的网站时,该代码会在后台加载外部资产,而这些资产是有效负载,幸运的是,大多数浏览器都克服了这种漏洞。

background: url(http://somehackerdomain.com/payload...)

另一个仍然影响所有现代浏览器的 CSS 注入的简单示例是,如果您的网站 JavaScript 使用 CSS 属性值,那么攻击者可以为这个属性设置一个新的值作为一个 JavaScript 代码,它可能会窃取 cookie 等。

这些只是一些简单的例子。

有关 CSS 注入的更多信息,请参阅C-SHARP-CORNER CSS Injection

保护 cookie 的第三层保护是使用 HttpOnly 来阻止 JavaScript 访问它们。有关 HttpOnly 的更多信息,请访问 HttpOnly

【讨论】:

  • 是的,但是 CSS 代码怎么可能是恶意的呢?请编辑您的答案以包含该内容和 CSS 注入示例。
  • 我添加了两个简单的例子。我希望他们能帮助解决问题。
  • @yherbawi 非常好!我还建议您了解更多信息:c-sharpcorner.com/article/css-injection-exploitation
  • @LaaouatniAnas 谢谢,我添加了答案的链接。
【解决方案2】:

当攻击者将恶意 CSS 代码注入到您的 Web 应用程序中,但该漏洞对安全没有任何影响时,就会发生 CSS 注入,但它可能会导致在您的网站上显示有害广告。您可以通过输入验证和实现内容安全策略 (CSP) 等安全标头来防止它。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-07-17
    • 2021-03-07
    相关资源
    最近更新 更多