CSS Injection

什麼是CSS注入

你們對XSS攻擊都很是熟悉了,可能不多關注到CSS注入攻擊,如下行爲有可能受到CSS注入攻擊:php

  • 從用戶提供的URL中引入CSS文件
  • CSS代碼中採用了用戶的輸入數據

能夠看下如下兩個例子
https://www.owasp.org/index.p...
http://www.thespanner.co.uk/2...css

原理

CSS屬性選擇器讓開發者能夠根據屬性標籤的值匹配子字符串來選擇元素。 這些屬性值選擇器能夠作如下操做:
1.若是字符串以子字符串開頭,則匹配;
2.若是字符串以子字符串結尾,則匹配;
3.若是字符串在任何地方包含子字符串,則匹配;
4.屬性選擇器能讓開發人員查詢單個屬性的頁面HTML標記,而且匹配它們的值。html

而在實際環境中,若是一些敏感信息會被存放在HTML標籤內,如CSRF token存儲在隱藏表單的屬性值中,這使得咱們能夠將CSS選擇器與表單中的屬性進行匹配,並根據表單是否與起始字符串匹配,加載一個外部資源,例如背景圖片,來嘗試猜想屬性的起始字母。經過這種方式,攻擊者能夠進行逐字猜解並最終獲取到完整的敏感數值。前端

防護策略

想要解決這個問題受害者能夠在其服務器實施內容安全策略(CSP),防止攻擊者從外部加載CSS代碼。web

總結

做爲前端開發者,咱們與用戶最近,也是網絡安全防禦的第一道線,要時刻關注來自各方面的網絡攻擊,保障用戶信息的安全。安全

參考文獻

https://portswigger.net/kb/is...
https://www.freebuf.com/artic...
https://24ways.org/2018/secur...服務器

相關文章
相關標籤/搜索