【发布时间】:2022-01-02 18:42:19
【问题描述】:
我听我的朋友谈论过这个名为“CSS 注入”的漏洞 但是,我不知道这是什么,我一听到就想,怎么可能使用 CSS 进行任何恶意活动或攻击?
所以我想知道这个“CSS 注入”漏洞是什么以及如何防止它。
【问题讨论】:
标签: css security penetration-testing
我听我的朋友谈论过这个名为“CSS 注入”的漏洞 但是,我不知道这是什么,我一听到就想,怎么可能使用 CSS 进行任何恶意活动或攻击?
所以我想知道这个“CSS 注入”漏洞是什么以及如何防止它。
【问题讨论】:
标签: css security penetration-testing
这是什么?
CSS 注入意味着攻击者设法将恶意 CSS 代码上传到您的网站,这些代码将在您的访问者浏览器上运行。
危险吗?
写在 2022 年,NO,CSS 注入几乎不会影响任何人,因为浏览器已经克服了这个问题,但 请注意,一些用户使用旧浏览器可能会受此影响。
我应该做点什么吗?
是的你应该,即使它目前不是真正的风险,你应该防止攻击者向你的网站注入恶意 CSS 和JavaScript、JavaScript 非常重要,因为最近批量利用了一些漏洞,大多数用户还没有将浏览器更新到最新版本。
如何保护?
您应该始终过滤用户输入以防止恶意注入,但额外的保护层是:
使用 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';"
请注意,如果您使用来自其他域的 CSS 或 JavaScript,则无法使用该代码以上。
欲了解更多信息并了解代码中每个单词的含义,请访问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 代码注入到您的 Web 应用程序中,但该漏洞对安全没有任何影响时,就会发生 CSS 注入,但它可能会导致在您的网站上显示有害广告。您可以通过输入验证和实现内容安全策略 (CSP) 等安全标头来防止它。
【讨论】: