2013-12-19 36 views
0

我有這種形式這是如何保存我的表單從csrf攻擊?

<form> 
//code 
<input type="hidden" value="gfth35rfer43556thgrth8678gbfgb" name="csrf"> 
</form> 

令牌是爲每個用戶唯一的。現在假設攻擊者登錄並打開此頁面。現在他知道當前會話令牌是什麼,通過複製攻擊者上面的值具有身份驗證令牌。他可以輕鬆攻擊我的網站。這個程序如何防止csrf攻擊?

+0

閱讀http://en.wikipedia.org/wiki/Cross-site_request_forgery – SamV

+0

詢問有關新話題的一個很好的經驗法則是查看來自兩個類別的最高票數問題:http://stackoverflow.com /問題/標記/ PHP + CSRF?排序=票&pageSize的= 50。你會得到一個很好的介紹,並看到該領域最大的問題和解決方案。 –

回答

2

考慮:

  • 愛麗絲 - 用戶
  • 鮑勃 - 有人誰運行一個網站
  • 馬洛裏 - 攻擊者

CSRF保護的重點是防止馬洛裏誘騙Alice提交由Mallory提供的數據(使用Alice的用戶憑證)。

由於Alice和Mallory有不同的標記,所以Mallory不能只是「複製上面的值」。

這不是爲了防止Mallory使用自己的憑據提交數據。爲了解決這個問題,你需要決定給予不同用戶多少信任。

+0

很好的解釋tnx。如何阻止用戶將表單從其他網站提交給我的用戶。如果你有任何鏈接解釋這將有幫助 – Ace

+0

爲了什麼目的?阻止他們被騙入提交數據,他們不想發送?這就是CSRF保護所要做的。要阻止他們提交您不希望他們提交的數據?你無法阻止這一點。數據到達服務器時需要檢查數據的完整性。 – Quentin