web攻擊方法及防護總結

1. CSRF (cross-site request forgery)跨站請求僞造

一句話歸納:php

當用戶瀏覽器同時打開危險網站和正常網站,危險網站利用圖片隱藏連接,或者js文件操縱用戶生成錯誤請求給正常網站。此時由於用戶會攜帶本身的session驗證。危險網站發出的請求得以執行。

clipboard.png

根本緣由:web的隱式身份驗證機制
解決辦法: 爲每個提交的表單生成一個隨機token, 存儲在session中,每次驗證表單token,檢查token是否正確。web

2. XSS (cross site script)跨站腳本攻擊

一句話歸納:瀏覽器

網站對提交的數據沒有轉義或過濾不足,致使一些代碼存儲到系統中,其餘用戶請求時攜帶這些代碼,從而使用戶執行相應錯誤代碼

clipboard.png

例如在一個論壇評論中發表:安全

<script>alert('hacked')</script>

這樣的話,當其餘用戶瀏覽到這個頁面,這段js代碼就會被執行。固然,咱們還能夠執行一些更嚴重的代碼來盜取用戶信息。
解決辦法: 轉移和過濾用戶提交的信息cookie

3. session攻擊,會話劫持

一句話歸納:session

用某種手段獲得用戶session ID,從而冒充用戶進行請求

clipboard.png

緣由: 因爲http自己無狀態,同時若是想維持一個用戶不一樣請求之間的狀態,session ID用來認證用戶
三種方式獲取用戶session ID:xss

  1. 預測:PHP生成的session ID足夠複雜而且難於預測,基本不可能
  2. 會話劫持: URL參數傳遞sessionID; 隱藏域傳遞sessionID;比較安全的是cookie傳遞。但一樣能夠被xss攻擊取得sessionID
  3. 會話固定: 誘騙用戶使用指定的sessionID進行登陸,這樣系統不會分配新的sessionID

防護方法:web安全

  • 每次登錄重置sessionID
  • 設置HTTPOnly,防止客戶端腳本訪問cookie信息,阻止xss攻擊
  • 關閉透明化sessionID
  • user-agent頭信息驗證
  • token校驗
好的話點個贊吧!!!
更詳細講解: [web安全大全]
相關文章
相關標籤/搜索