本文筆記基於「千古壹號」的GitHub項目:https://github.com/qianguyihao/web
1.考點
- CSRF
- XSS
不會太難,考察基本概念、攻擊方式、防禦措施
2.解決方法
2.1 CSRF
1.基本概念、縮寫、全稱?
CSRF:Cross-site request forgery,跨站請求僞造
2.攻擊原理
- cookie ( [ˈkʊki] ,儲存在用戶本地終端上的數據)
- 完成一次攻擊,滿足2個條件:
(1)登錄受信任網站,並在本地生成Cookie;
(2)在不登出A的情況下,訪問危險網站B。
3.防禦措施
方法1:Token( [ˈtoʊkən])驗證
(1)服務器發送給客戶端一個token;
(2)客戶端提交的表單中帶着這個token。
(3)如果這個 token 不合法,那麼服務器拒絕這個請求。
方法2:隱藏令牌
- 把 token 隱藏在 http 的 head頭中。
- 和方法1類似,只是使用方式不同
方法3:Referer(Refer,[rɪˈfɜːr] )驗證
- 只接受本站的請求,服務器才做響應
2.2 XSS
1.基本概念、縮寫、全稱?
XSS(Cross Site Scripting):跨域腳本攻擊。
2.攻擊原理
不需要你做任何的登錄認證,它會通過合法的操作向你的頁面注入腳本
3.攻擊方式
- 反射型:代碼出現在url中,作爲輸入提交到服務器端
- 存儲型:提交的代碼會存儲在服務器端,不用再提交XSS代碼。
4.防禦措施
- 編碼
- 過濾
- 校正
3.區別
區別1:(概念的區別)
- CSRF:需要用戶先登錄網站A,獲取cookie
- XSS:無需登錄
區別2:(原理的區別)
- CSRF:利用網站A的漏洞,請求網站A的api
- XSS:向網站A注入JS代碼,篡改網站A的內容