xss攻擊原理
阿新 • • 發佈:2018-05-01
IT rip 編碼 coo html click 訪問 ID 定位
xss
- 跨站腳本攻擊(cross site scripting):它是通過對網頁註入可執行代碼且成功地被瀏覽器執行,達到攻擊的目的,形成了一次有效XSS攻擊,一旦攻擊成功,它可以獲取用戶的聯系人列
表,然後向聯系人發送虛假詐騙信息,可以刪除用戶的日誌等等,有時候還和其他攻擊方式同時實施比如SQL註入攻擊服務器和數據庫、Click劫持、相對鏈接劫持等實施釣魚,它帶來的危害是巨大的,是web安全的頭號大敵。 - 執行條件:
- 需要向web頁面註入惡意代碼;
- 這些惡意代碼能夠被瀏覽器成功的執行。
- XSS攻擊方式
- XSS存儲型攻擊:惡意代碼被保存到目標網站的服務器中,這種攻擊具有較強的穩定性和持久性,比較常見場景是在博客,論壇等社交網站上,
- XSS反射型攻擊:意代碼並沒有保存在目標網站,通過引誘用戶點擊一個鏈接到目標網站的惡意鏈接來實施攻擊的。
- xss存儲型攻擊示例:用戶可以一html的方式上傳一次文章,如果黑客用戶在上傳文章時,在html裏加入了一些違規的js代碼,那麽其他用戶在訪問這篇文章時,瀏覽器會默認執行黑客上傳的js代碼,從而完成了對其他用戶攻擊
xss反射型攻擊方式:有時前端html頁面需要把get方式傳回來的字段顯示到頁面上,這時如果黑客在傳的字段後加上一段js代碼,則也是有可能被執行的。例如:
http://www.xxx.com/?id=" /><script>alert(/xss/)</script><br x=" //最終反射出來的HTML代碼: <div> <img src="/images/handler.ashx?id=" /><script>alert(/xss/)</script><br x="" /> </div>
- 攻擊類型很多,例如:
- 盜取用戶賬號cookie
- 流量劫持(通過訪問某段具有window.location.href定位到其他頁面)
- 防禦方式:
- 將前端提交的數據編碼轉義:一般表單提交的時候完全可以用strip_tags函數去除html標簽,如果涉及到富文本編輯器需要保留html標簽,可以用htmlspecialchars對提交數據進行過濾,從而轉換(& < > ’ ” )這幾個字符;還有可以利用htmlentities函數轉換所有的html標記
- 對cookie的保護:對重要的cookie設置httpOnly, 防止客戶端通過document.cookie讀取cookie。服務端可以設置此字段。
- 過濾掉所有可執行的js代碼:例如利用lexer方式
xss攻擊原理