我听我的朋友谈论这个名为“CSS 注入”的漏洞,但是,我不知道这是什么,一听到它我就想,怎么可能使用 CSS 进行任何恶意活动或攻击?
所以我想知道这个“CSS 注入”漏洞是什么以及如何预防它。
这是什么?
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代码,这可能会窃取饼干等 这些只是一些简单的例子。
有关 CSS 注入的更多信息,请参阅
C-SHARP-CORNER CSS 注入HttpOnly,它可以防止 JavaScript 访问它们。有关 HttpOnly 的更多信息,请访问 HttpOnly