五星云站強(qiáng)力攔截各類XSS、CSRF等攻擊手段
1.XSS跨站腳本
指惡意訪客的輸入沒有經(jīng)過嚴(yán)格的控制進(jìn)入了數(shù)據(jù)庫,最終顯示給來訪的用戶,導(dǎo)致可以在來訪用戶的瀏覽器里以瀏覽用戶的身份執(zhí)行Html代碼。 數(shù)據(jù)流程為:攻擊者的Html輸入—>web程序—>進(jìn)入數(shù)據(jù)庫—>web程序—>用戶瀏覽器。 五星云站的防御措施包括
- 用戶的輸入值,只被允許輸入合法的值,其它值一概過濾掉。
- HttpOnly防止劫取Cookie 瀏覽器將禁止頁面的Javascript訪問帶有HttpOnly屬性的Cookie。目前主流瀏覽器都支持,HttpOnly解決的是XSS后的Cookie支持攻擊。
2.CSRF,偽造請求,冒充用戶在站內(nèi)的正常操作 絕大多數(shù)網(wǎng)站是通過 cookie 等方式辨識用戶身份(包括使用服務(wù)器端 Session 的網(wǎng)站,因?yàn)?Session ID 也是大多保存在 cookie 里面的),再予以授權(quán)的。所以要偽造用戶的正常操作,最好的方法是通過 XSS 或鏈接欺騙等途徑,讓用戶在本機(jī)(即擁有身份 cookie 的瀏覽器端)發(fā)起用戶所不知道的請求。
在五星云站中,通過以下措施防御CSRF攻擊
- 判斷 referer
- 驗(yàn)證碼 用戶提交的表單中可使用隨機(jī)驗(yàn)證碼,讓用戶在文本框中填寫圖片上的隨機(jī)字符串,并且在提交表單后對其進(jìn)行檢測。
- token 在HTTP請求中以參數(shù)的形式加入一個隨機(jī)產(chǎn)生的token,并在服務(wù)器端建立一個攔截器來驗(yàn)證這個token,如果請求中沒有token或者token內(nèi)容不正確,則認(rèn)為可能是CSRF攻擊而拒絕該請求。