2010-09-03 17 views
1

假設您已經在twitter中創建了oauth客戶端應用程序,則可以使用http://twitter.com/apps來管理它們。當我查看HTML頁面的源代碼時,我發現他們在表單定義中使用了一個隱藏的表單參數,稱爲真實性標記。twitter的oauth客戶端的Web UI中的隱藏真實性令牌有多安全?

<form method="post" id="sign_out_form" action="/sessions/destroy" style="display:none;"> 
<input name="authenticity_token" value="18c9957agd7ysdjgsgd87sgdjs" 
    type="hidden"/> 
</form> 

<form action="/oauth_clients/regenerate_keys/299120" id="regenerate_keys_form" 
method="post" style="float: right;"> 
<input name="authenticity_token" type="hidden" 
value="18c9957agd7ysdjgsgd87sgdjs" /> 
<input type="submit" id="regenerate_keys" value="Reset Consumer Key/Secret"  
class="btn"/> 
</form> 

鑑於整個網頁都是通過SSL訪問的,這些真實性令牌的基礎是什麼?他們從不改變;因此它們不是隨機的。有人可以啓發我的實用工具嗎?

回答

4

這是Rails的一個標準功能(Twitter的前端被寫入)。真實性標記是每個會話生成的隨機字符串,用於防止CSRF attacks。您可以閱讀更多關於攻擊向量以及爲什麼Rails使用Rails Security Guide上的真實性標記。完全由SSL提供服務的應用不會阻止CSRF攻擊;目的僅僅是爲了確保當對資源進行POST/PUT/DELETE時,它是通過應用程序生成的表單完成的,並且已經以某種形式由用戶看到。

+0

聽起來和javascript的同源限制非常相似。 – 2010-09-03 08:23:01

+0

這不完全是一回事,但它實現了許多相同的目標。 – 2010-09-03 09:12:06

相關問題