XSS 攻擊和 CSRF 攻擊 1、XSS 攻擊 1. 概念 XSS(Cross Site Scripting):跨域腳本攻擊。 2. 原理 不需要你做任何的登錄認證,它會通過合法的操作(比如在 url 中輸入、在評論框中輸入),向你的頁面注入腳本(可能是 js、hmtl 代碼塊等)。 3. 防范 編碼;對于用戶輸入進行編碼。 過濾;移除用戶輸入和事件相關的屬性。(過濾 script、style、iframe 等節(jié)點) 校正;使用 DOM Parse 轉換,校正不配對的 DOM 標簽。 HttpOnly。 4. 分類 反射型(非持久):點擊鏈接,執(zhí)行腳本 存儲型(持久):惡意輸入保存數據庫,其他用戶訪問,執(zhí)行腳本 基于 DOM:惡意修改 DOM 結構,基于客戶端 2、CSRF 攻擊 1. 概念 SRF(Cross-site request forgery):跨站請求偽造。 2. 原理 登錄受信任網站 A,并在本地生成 Cookie。(如果用戶沒有登錄網站 A,那么網站 B 在誘導的時候,請求網站 A 的 api 接口時,會提示你登錄)。 在不登出 A 的情況下,訪問危險網站 B(其實是利用了網站 A 的漏洞)。 3. 防范 token 驗證; 隱藏令牌;把 token 隱藏在 http 請求的 head 中。 referer 驗證;驗證頁面來源。 3、兩者區(qū)別 CSRF:需要用戶先登錄網站 A,獲取 cookie。XSS:不需要登錄。 CSRF:是利用網站 A 本身的漏洞,去請求網站 A 的 api。XSS:是向網站 A 注入 JS 代碼,然后執(zhí)行 JS 里的代碼,篡改網站 A 的內容。 |