CSRF
基本概念和縮寫
跨站請求偽造,Cross-site request forgery 縮寫為CSRF
CSRF攻擊
也就是說如果你登陸了A網(wǎng)站盒齿,有session保存在瀏覽器,通過惡意網(wǎng)站B的連接你又打開了網(wǎng)站A并且發(fā)送了攻擊者設(shè)定好的內(nèi)容候衍,導(dǎo)致進行了一些非你本意的操作(比如轉(zhuǎn)賬忙灼、發(fā)送郵件之類的)匠襟。
防御方法
- 通過 referer钝侠、token 或者 驗證碼 來檢測用戶提交。
- 盡量不要在頁面的鏈接中暴露用戶隱私信息酸舍。
- 對于用戶修改刪除等操作最好都使用post 操作 帅韧。
- 避免全站通用的cookie,嚴格設(shè)置cookie的域啃勉。
XSS
基本概念和縮寫
跨域腳本攻擊忽舟,Cross-site Scripting
XSS是一種經(jīng)常出現(xiàn)在web應(yīng)用中的計算機安全漏洞,它允許惡意web用戶將代碼植入到提供給其它用戶使用的頁面中淮阐。比如這些代碼包括HTML代碼和客戶端腳本叮阅。攻擊者利用XSS漏洞旁路掉訪問控制--例如同源策略(same origin policy)。這種類型的漏洞由于被黑客用來編寫危害性更大的網(wǎng)絡(luò)釣魚(Phishing)攻擊而變得廣為人知泣特。對于跨站腳本攻擊浩姥,黑客界共識是:跨站腳本攻擊是新型的"緩沖區(qū)溢出攻擊",而JavaScript是新型的"ShellCode"
反射型
發(fā)出請求時状您,xss代碼出現(xiàn)在URL中勒叠,作為輸入提交到服務(wù)器端,服務(wù)器端響應(yīng)請求膏孟,xss代碼隨響應(yīng)內(nèi)容一起傳回瀏覽器眯分,最后瀏覽器執(zhí)行xss代碼
反射型xss攻擊
存儲型
存儲型跟反射型的區(qū)別只在于,提交的代碼會存儲在服務(wù)端柒桑,下次請求目標頁面時不用再次提交XSS代碼
防護措施
- 編碼
對用戶輸入的數(shù)據(jù)進行HTML Entity編碼 - 過濾
移除用戶上傳的DOM屬性弊决,比如onerror之類的
移除用戶上傳的Style節(jié)點,Script節(jié)點魁淳,ifarme節(jié)點 - 校正
避免直接對HTML Entity解碼
使用DOM parse轉(zhuǎn)換飘诗,校正不配對的標簽