常見的Web攻擊手段——XSS攻擊

1、什麼是XSS?

跨站腳本攻擊(Cross Site Scripting),爲了避免和層疊樣式表(Cascading Style Sheets, CSS)的縮寫混淆,故將跨站腳本攻擊縮寫爲XSS。惡意攻擊者往Web頁面裏插入惡意的Script代碼,當用戶瀏覽該頁之時,嵌入其中Web裏面的Script代碼會被執行,從而達到惡意攻擊用戶的目的。前端

2、XSS種類

XSS攻擊的分類主要有「反射型」與「存儲型」兩種。數據庫

「反射型」攻擊者經過包裝改造URL參數,而後利用前端代碼的缺陷或漏洞來攻擊,它更偏向於前端層面,而且在實際攻擊中攻擊者會根據 HTML實體編碼、URL編碼、uniocde編碼等進行編碼而後欺騙用戶點擊訪問。後端

而「存儲型」攻擊者則會經過抓包工具或者是直接調用接口的方式想盡一切辦法來向後端數據庫注入數據。常見的地方就是留言評論或者是含有表單提交的地方。安全

XSS攻擊有兩個要點,一個是「輸入點」,針對輸入點咱們能夠對關鍵的特殊的字符進行編碼,而在「輸出點」咱們要對本身採用的輸出方式以及方法要有必定的安全風險認知。架構

3、XSS危害

  • 釣魚欺騙:最典型的就是利用目標網站的反射型跨站腳本漏洞將目標網站重定向到釣魚網站,或者注入釣魚 JavaScript 以監控目標網站的表單輸入。
  • 網站掛馬:跨站時利用 IFrame 嵌入隱藏的惡意網站或者將被攻擊者定向到惡意網站上,或者彈出惡意網站窗口等方式均可以進行掛馬攻擊。
  • 身份盜用:Cookie 是用戶對於特定網站的身份驗證標誌,XSS 能夠盜取到用戶的 Cookie,從而利用該 Cookie 盜取用戶對該網站的操做權限。若是一個網站管理員用戶 Cookie 被竊取,將會對網站引起巨大的危害。
  • 盜取網站用戶信息:當可以竊取到用戶 Cookie 從而獲取到用戶身份時,攻擊者能夠獲取到用戶對網站的操做權限,從而查看用戶隱私信息。
  • 垃圾信息發送:好比在 SNS 社區中,利用 XSS 漏洞借用被攻擊者的身份發送大量的垃圾信息給特定的目標羣。
  • 劫持用戶 Web 行爲:一些高級的 XSS 攻擊甚至能夠劫持用戶的 Web 行爲,監視用戶的瀏覽歷史,發送與接收的數據等等。
  • XSS 蠕蟲:XSS 蠕蟲能夠用來打廣告、刷流量、掛馬、惡做劇、破壞網上數據、實施 DDoS 攻擊等。

4、XSS防範

XSS之因此會發生,是由於用戶輸入的數據變成了代碼。所以,咱們須要對用戶輸入的數據進行HTML轉義處理,將其中的「尖括號」、「單引號」、「引號」之類的特殊字符進行轉義編碼:分佈式

HTML字符 HTML轉義後的字符
< &lt;
> &gt;
&amp;
&quot;

就目前而言,應對XSS攻擊的主要手段仍是編碼與過濾兩種,編碼用於將特殊的符號 "<、>、&、'、""進行轉義,而過濾則是阻止特定的標記、屬性、事件。
若是你不肯意爲了嚴格的安全而限制產品自己的靈活,那麼我更建議採用「編碼」的方案。工具

參考

文章《開放平臺第三方應用安全開發指南》網站

文章《WEB安全 - 認識與防護XSS攻擊》編碼

文章《IBM Rational AppScan:跨站點腳本攻擊深刻解析》spa

書籍《大型分佈式網站架構設計與實踐》

相關文章
相關標籤/搜索