0x01
現(xiàn)今WEB安全主要面臨的幾個(gè)問(wèn)題:
- sql 注入
- xss 跨站腳本
- csrf 跨站域請(qǐng)求偽造
0x02
那么如何設(shè)計(jì)一個(gè)安全的站點(diǎn)呢?
我們先看看原理:
輸入類(lèi):sql 注入 和 xss 跨站腳本淌喻,一個(gè)可能造成非法的數(shù)據(jù)庫(kù)請(qǐng)求,一個(gè)可能造成非法的js引用拌倍,防范方法,我們只需要在用戶輸入時(shí)對(duì)其輸入的內(nèi)容在前后臺(tái)進(jìn)行校驗(yàn)或轉(zhuǎn)意或使用參數(shù)化sql等手段
那么什么是(CSRF)跨站偽造請(qǐng)求.呢噪径?
舉個(gè)例子:假如上面這個(gè)表單的頁(yè)面地址是http://0x1024.com
柱恤,黑闊想通過(guò)http://hack.com
頁(yè)面獲取到你http://0x1024.com
的用戶信息或者使用你0x1024
的cookie訪問(wèn)你的個(gè)人賬戶并轉(zhuǎn)錢(qián)1000塊.
偽造其實(shí)很簡(jiǎn)單,我舉個(gè)栗子

假如你恰好登錄了0x1024
找爱,那么很有可能你的錢(qián)就莫名其妙少了1000塊了梗顺。
想想是不是很可怕,有的朋友可能說(shuō)使用post就安全一點(diǎn)了车摄,我只能說(shuō)呵呵了寺谤,假如黑闊使用iframe
元素把你的表單內(nèi)嵌到了hack.com
呢?练般?
然后用某種方式誘導(dǎo)你填入用戶名和密碼矗漾,那么你的帳號(hào)同樣還是被騙走了。
CSRF可以說(shuō)是瀏覽器的一個(gè)特(que)性(xian), 那么Session這玩意那么容易被csrf薄料,那么怎么防嘛,目前防御的方法有幾種
- 驗(yàn)證來(lái)源 Http請(qǐng)求中的Referer
- Token
- 隱藏表單 <input type=”hidden” name=”csrftoken” value=”tokenvalue”/>
- 隱藏頭部 <meta name="csrf-token" content="pa5chCM1n1" />
在理想的情況下泵琳,客戶端和服務(wù)端時(shí)間永遠(yuǎn)一致摄职,那么可以考慮使用Google兩部驗(yàn)證的思路來(lái)替代token
上面幾招都是通過(guò),這篇文章來(lái)的获列。CSRF 攻擊的應(yīng)對(duì)之道
但是這篇文章中少了個(gè)同源請(qǐng)求的問(wèn)題,假如被人使用iframe
把整個(gè)頁(yè)面嵌入了呢谷市?這種就是所謂的clickjacking
,其實(shí)瀏覽器早就有這類(lèi)的聲明了。只需要在響應(yīng)頭里加入X-Frame-Options:SAMEORIGIN
即可防范击孩,下面是x-frame-options的說(shuō)明
X-Frame-Options HTTP 響應(yīng)頭是用來(lái)給瀏覽器指示允許一個(gè)頁(yè)面可否在 <frame>, <iframe> 或者 <object> 中展現(xiàn)的標(biāo)記迫悠。網(wǎng)站可以使用此功能,來(lái)確保自己網(wǎng)站的內(nèi)容沒(méi)有被嵌到別人的網(wǎng)站中去巩梢,也從而避免了點(diǎn)擊劫持 (clickjacking) 的攻擊创泄。
想必大黑闊們對(duì)我這些招都已經(jīng)是過(guò)眼云煙了。括蝠。鞠抑。。