xss攻擊原理


xss
  • 跨站腳本攻擊(cross site scripting):它是通過對網頁注入可執行代碼且成功地被瀏覽器執行,達到攻擊的目的,形成了一次有效XSS攻擊,一旦攻擊成功,它可以獲取用戶的聯系人列
    表,然后向聯系人發送虛假詐騙信息,可以刪除用戶的日志等等,有時候還和其他攻擊方式同時實施比如SQL注入攻擊服務器和數據庫、Click劫持、相對鏈接劫持等實施釣魚,它帶來的危害是巨大的,是web安全的頭號大敵。

  • 執行條件:

    1. 需要向web頁面注入惡意代碼;
    2. 這些惡意代碼能夠被瀏覽器成功的執行。
  • 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方式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM