它是什么?
CSS 注入意味着攻击者设法将恶意 CSS 代码上传到您的网站,该网站将在您的访问者浏览器上运行。
危险吗?
写这篇文章是在 2022 年,NO,CSS注入几乎不会影响任何人,因为浏览器已经克服了这个问题,但是note一些使用旧浏览器的用户可能会受到此影响。
我应该做点什么吗?
Yes您应该,即使目前这不是真正的风险,您也应该防止攻击者向您的网站注入恶意软件CSS and JavaScript, JavaScript这非常重要,因为一些漏洞最近被批量处理,并且大多数用户尚未将浏览器更新到最新版本。
如何防护?
你应该永远过滤用户输入免受恶意注入,但额外的保护层是:
所有这一切的解决方案正在使用CSP Header (内容安全策略),它允许您防止浏览器在您的网站上执行恶意代码。
in apache htaccess文件添加以下内容但是模组头应该启用
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 or JavaScript来自另一个域,您不能使用上面的代码。
欲了解更多信息并了解代码中每个单词的访问内容MDN CSP https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Content-Security-Policy
EDIT:
最简单的例子CSS注入是指攻击者设法向您的网站注入CSS加载外部资产(例如在后台)的代码,这些资产是有效负载,幸运的是,大多数浏览器已经克服了此类漏洞。
background: url(http://somehackerdomain.com/payload...)
另一个简单的例子CSS仍然影响所有现代浏览器的注入是,如果您的网站JavaScript uses a CSS属性值,那么攻击者可以为此属性设置一个新值作为 JavaScript 代码,这可能会窃取 cookie 等。
这些只是一些简单的例子。
有关 CSS 注入的更多信息,请参阅C 尖角 CSS 注入 https://www.c-sharpcorner.com/article/css-injection-exploitation/
保护 cookie 的第三层保护是使用HttpOnly这可以防止JavaScript访问它们。了解更多关于HttpOnly visit HttpOnly https://owasp.org/www-community/HttpOnly