2011-12-12 30 views
0

我一直在努力解決,如果我可以在我的靜態主頁上登錄表單。我想要一些靜態頁面,如果在它們上面有登錄表單,那將是非常棒的。我花了一些時間熟悉form_tag生成的authenticity_token,儘管我意識到我們通常要檢查所有不是GET請求的請求,我覺得可能會因爲登錄而離開它,因爲我們不是'在用戶登錄之前用任何東西信任用戶。如果惡意網站此時嘗試使用CSRF,那麼無論如何都需要知道登錄名和密碼。瞭解rails authenticity_token在哪裏是必需的(靜態頁面登錄?)

我絕對不想在我的應用程序中打開任何安全漏洞,我非常感謝所有的rails能夠保持這個工作,但是在這種情況下,我想我可以提交一個沒有令牌的表單嗎?

回答

0

令牌的目的是讓數據不會輕易進入您的系統,除非它直接來自該表單。當用戶訪問該網站時,他們會得到一個與該表單中的令牌相匹配的cookie。表單提交時,這些令牌必須匹配。

如果有人可以從表單之外提交數據,那麼您將爲腳本創建潛在的連續登錄嘗試。寫一些能夠自動進入你的網站,獲取cookie並使用表單登錄的東西相當容易,但這絕對是更多的工作。把它看作是你可以擁有的另一個安全層,而不會對你的用戶產生負面影響。