爲何主流網站沒法捕獲 XSS 漏洞?

二十多年來,跨站腳本(簡稱 XSS)漏洞一直是主流網站的心頭之痛。爲何過了這麼久,這些網站仍是對此類漏洞一籌莫展呢?html

對於最近 eBay 網站曝出的跨站腳本漏洞,你有什麼想法?爲何會出現這樣的漏網之魚?一個如此大規模的網站,不該該具有可靠的網關安全技術以阻止任何狀況下的 XSS 攻擊麼?數據庫

即使從上世紀 90 年代開始,跨站腳本漏洞就已經爲人們所熟知。時至今日,它仍在貽害爲數很多的網站。大多數主流網站,包括谷歌,CNN,PayPal 以及 Facebook,都曾受過 XSS 漏洞的影響。該漏洞也常年出如今 CWE/SANS 前 25 個最危險的編程錯誤、OWASP 前 10 個最致命的 Web 應用安全風險之類的榜單。編程

XSS 攻擊與大多數應用層攻擊(諸如 SQL 注入攻擊)不一樣,由於它攻擊的是應用的用戶,而非應用自己或應用服務器。這類攻擊會往 Web 應用的內容中注入代碼,一般是 JavaScript 之類的客戶端代碼。大多數網站都有許許多多的注入位置,包括搜索框、反饋表格,cookie 以及論壇等。藉助 XSS 漏洞,黑客能夠竊取數據,控制用戶的會話,運行惡意代碼,或操縱受害用戶瀏覽器中顯示的內容。瀏覽器

像 eBay 這樣的網站,幾乎徹底基於用戶產生的內容,一般在用戶的項目描述部分包含許多活動內容(Active Content),好比 JavaScript 和 Flash。因爲網站必須與用戶互動,接收來自用戶的輸入、返回數據,這意味着,攻擊者也能夠直接與網站互動,從而穿破傳統的外圍安全防禦。除非全部用戶提供的內容都通過嚴格審查,XSS 攻擊代碼就有可能注入拍賣清單頁面,從而影響每一個訪問該頁面的用戶。用戶輸入的全部內容(表單數據、cookie、郵件、文件、圖片等)都應該視爲不可信任,須要經歷審查,刪除其中可能被惡意使用的字符與字符串,才能繼續執行腳本或傳給數據庫。安全

致使 eBay 這樣的大網站持續受到 XSS 攻擊的一大緣由,是這些網站過於複雜,實時生成的網頁經常會包含許多外部站點的內容。這使得測試階段,枚舉用戶與應用交互的全部排列組合變得不太現實,繼而致使 XSS 漏網之魚的出現。服務器

話雖如此,eBay 竟然沒有一套更爲嚴格的代碼審查流程(近幾周發現了多個 XSS 漏洞),仍是有些使人吃驚。用於測試 XSS 漏洞的工具其實不少,它們都能在代碼上線以前有效查找漏洞。此外,開發者也可使用安全控制庫(諸如 OWASP 的企業安全 API 或微軟的反跨站腳本庫),而不須要本身編寫驗證檢查。並且,諸如運行時應用自我保護(RASP)等網關安全技術也有助於檢測並防護對 XSS 漏洞的攻擊。所以,如此主流的一個大網站(eBay),卻沒能有效防護如此廣爲人知的安全漏洞,實在是有些讓人失望。cookie

現在,多樣化的攻擊手段層出不窮,傳統安全解決方案愈來愈難以應對網絡安全攻擊。OneRASP 實時應用自我保護技術,能夠爲軟件產品提供精準的實時保護,使其免受漏洞所累。想閱讀更多技術文章,請訪問 [OneAPM 官方技術博客]。網絡

本文轉自 OneAPM 官方博客xss

相關文章
相關標籤/搜索