防止CSRF攻擊的實(shí)際操作流程精簡(jiǎn)版
以下的文章主要描述的是正確防止CSRF攻擊的實(shí)際操作流程,我在一個(gè)信譽(yù)度很好的網(wǎng)站找到一個(gè)關(guān)于正確防止CSRF攻擊的實(shí)際操作流程的資料,拿出來供大家分享,以下就是文章的詳細(xì)內(nèi)容介紹,望大家借鑒?!?/p>
1.Hello World
歡迎來到嶄新的Playhack.net的新季度開題項(xiàng)目報(bào)告。我非常高興您能夠再次回來讓我們的c001項(xiàng)目重現(xiàn)。
希望您能喜歡這個(gè)新的短篇論文,我邀請(qǐng)你瀏覽位于http://www.playhack.net的全部新項(xiàng)目。
開始:幾乎沒有什么,只是一點(diǎn)香煙!:
吶喊:我向我的playhack m8s null,omni,god and emdel,ofc o str0ke大聲吶喊!NEX 回來了。
2.介紹
我對(duì)跨站請(qǐng)求偽造(Cross Site Request Forgery,即CSRF)技術(shù)有一定研究,但是對(duì)網(wǎng)站開發(fā)者應(yīng)當(dāng)采取的措施研究不深。這些日子在編寫一個(gè)對(duì)用戶和管理員(這些人對(duì)他們的任務(wù)并不明晰:P)有高度安全要求的分布式網(wǎng)站程序時(shí),我被這個(gè)話題深刻的糾纏了。
針對(duì)這種情況,我必須考慮程序最終可能受到的各個(gè)方面的可能的攻擊威脅。
給我最多麻煩的就是Session欺騙(或者CSRF,你可以按照自己喜歡的方式稱呼),因?yàn)檫@種攻擊是完全以用戶的身份,因此并沒有百分百的可能性來防止它。
如果你對(duì)我剛才說所的Session欺騙并不太了解,那么你可以閱讀:http://www.playhack.net/view.php?id=30
3.可行措施
Ok,從這里開始,我必須假定你對(duì)Session欺騙攻擊的實(shí)施方法已經(jīng)深刻領(lǐng)會(huì)了:P
讓我們開始新的繼續(xù)。
考慮到一個(gè)已經(jīng)登錄到網(wǎng)站的受信用戶可以完成一些重要的或者私密的操作,攻擊者嘗試記性一個(gè)可能的登錄攻擊(但是大多數(shù)情況下是不可行的)并且得到已經(jīng)登錄用戶的Session來實(shí)現(xiàn)其巧妙的行為。
為了劫持用戶的Seession,入侵者精心構(gòu)造一個(gè)適當(dāng)?shù)木W(wǎng)頁,在這個(gè)網(wǎng)頁中包含了隱藏的JavaScript函數(shù)來重新創(chuàng)造一個(gè)原始操作表單,但是攻擊者卻修改了一些表單值,然后攻擊者讓受攻擊者訪問該頁面,此時(shí)頁面加載過程會(huì)提交上述表單到一個(gè)遠(yuǎn)程頁面,以隱秘地完成一個(gè)請(qǐng)求(此時(shí)受攻擊者并不知道),他們用這種方法利用了用戶的受信身份。
這種方式簡(jiǎn)單解釋了Session欺騙攻擊是如何工作的,但是一個(gè)重要的問題是,“我如何避免我的用戶成為這種攻擊的受害者?”
現(xiàn)在,你可能想到如下的幾種方法:
檢查Cookies憑據(jù)
檢查HTTP請(qǐng)求來路
使用驗(yàn)證碼
但是經(jīng)過一些嘗試,你會(huì)發(fā)現(xiàn)這些方法不是我們應(yīng)當(dāng)采取的最合適的解決方式,讓我們一個(gè)個(gè)的來看為什么。
3.1 Cookies Hashing
第一個(gè)方案可能是解決這個(gè)問題的最簡(jiǎn)單和快捷的方案了,因?yàn)楣粽卟荒軌颢@得被攻擊者的Cookies內(nèi)容,也就不能夠構(gòu)造相應(yīng)的表單。
這個(gè)問題的實(shí)現(xiàn)方法與下面的類似。在某些登錄頁面我們根據(jù)當(dāng)前的會(huì)話創(chuàng)建Cookies:
// Cookie value
$value = “Something from Somewhere”;
// Create a cookie which expires in one hour
setcookie(”cookie”, $value, time()+3600);
?>
在這里,我們?cè)贑ookies中使用了散列來使得這個(gè)表單可被認(rèn)證。
以上的相關(guān)內(nèi)容就是對(duì)防止CSRF攻擊的實(shí)際操作流程的介紹,望你能有所收獲。