前後端漏洞分析與防禦之上

一、前端 XSS

  1. XSS,全稱爲 Cross Site Scripting,跨站腳本攻擊。
  2. XSS 攻擊原理是 程序 + 數據 = 結果。
  3. Scripting 是可以獲取頁面數據、獲取 Cookies、劫持前端邏輯、發送請求,所以就可以偷取網站任意數據、偷取用戶資料、偷取用戶密碼和登錄態、欺騙用戶等等。
  4. XSS 攻擊分類爲反射型和存儲型。反射型是 url 參數直接注入,存儲型是存儲到 DB 後讀取時注入。
  5. XSS 攻擊注入點是有 HTML 節點內容、HTML 屬性、JavaScript 代碼和富文本等。
  6. 瀏覽器自帶防禦,參數出現在 HTML 內容或屬性。對於 JavaScript 代碼,轉義 '\' 或者轉換成 json
  7. 富文本,按白名單保留部分標籤和屬性,也可以使用 js-xss 這個第三方庫。
  8. CSP,全稱爲 Content Security Policy,內容安全策略,用於指定哪些內容可執行。
  9. PHP 中防禦 XSS,可以使用內置函數轉義、DOM 解析白名單、第三方庫和 CSP 等等。

二、前端 CSRF

  1. CSRF,全稱爲 Cross Site Request Forgy,跨站請求僞造。
  2. CSRF 攻擊原理,用戶登錄 A 網站,A 網站確認身份,B 網站頁面帶 A 網站身份向 A 網站發起請求。
  3. CSRF 攻擊的危害是利用用戶登錄態、用戶不知情、完成業務請求,所以盜取用戶資金進行轉賬和消費、冒充用戶發帖背鍋、損害網站名譽等等。
  4. CSRF 攻擊防禦,B 網站向 A 網站請求,帶 A 網站 Cookies,不訪問 A 網站前端,訪問後端,refererB 網站。對此,需要禁止第三方網站帶 Cookies,以及需要設置 same-site 屬性。
  5. 對於不訪問 A 網站前端,可以在前端頁面加入驗證信息、驗證碼和 token 等等。
  6. 對於 refererB 網站,可以驗證 referer 和 禁止來自第三方網站的請求。
  7. PHP 防禦 CSRF,可以使用 Cookie samesite 屬性、HTTP referer 頭 和 token

三、前端 Cookies

  1. Cookies 的特性是前端數據存儲,後端通過 http 頭設置,請求時通過 http 頭傳給後端,前端可讀寫和遵守同源策略。同時,也是有域名、有效期、路徑、http-onlysecure
  2. Cookies 的作用是存儲個性化設置,存儲未登錄時用戶唯一標識,存儲已登錄用戶的憑證和存儲其它業務數據。
  3. Cookies 的登錄用戶憑證是前端提交用戶名和密碼,後端驗證用戶名和密碼,後端通過 http 頭設置用戶憑證。對此,登錄用戶憑證可以是用戶ID、用戶ID+簽名 和 SessionId
  4. CookiesXSS 的關係,XSS 可能偷取 Cookieshttp-onlyCookie 不會被偷。
  5. CookiesCSRF 的關係,CSRF 利用了用戶Cookies,攻擊站點無法讀取 Cookies,最好能阻止第三方使用 Cookies
  6. Cookies 安全案例,比如某學習教務系統使用了開源 CMS,該 CMS 使用 username 作爲唯一用戶標識,該 CMS 文章作者暴露了 username,可以使用任意 username 登錄後臺。還比如,某論壇使用了某開源 ASP BBS 程序,該 ASP 程序使用用戶 ID 作爲用戶標識,可以僞造任意用戶登錄。
  7. Cookies 安全策略是簽名防篡改、私有變化加密、http-only去防止 XSSsecuresame-site

四、點擊劫持

  1. 點擊劫持的危害是用戶親手操作、用戶不知情,所以就盜取用戶資金轉賬、獲取用戶敏感信息。
  2. 點擊劫持防禦,可以使用 JavaScript 禁止內嵌,X-FRAME-OPTIONS 禁止內嵌以及其他輔助手段等。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章