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