2011-05-06 143 views
0

我在某些CakePHP網站上看到他們有關於註銷的額外信息,例如http://website.com/logout/DxcFaWlFaDOwCakePHP安全註銷

顯然這是出於安全原因?任何人都可以告訴我更多關於這個以及如何使用Cake實現它?

+0

我只能認爲它是一種CSRF防止機制。您基本上爲每個請求創建一個令牌並在下一個請求中檢查它。這可以防止某人例如嵌入一​​個iFrame與您的URL /註銷。 – halfdan 2011-05-06 13:08:29

回答

0

這些安全代碼被稱爲CSRF令牌,它們被用來防止CSRF attacks發生。 (即使在註銷環節使用CSRF令牌是毫無意義的)

您可以通過使用窗體助手和添加實現它在蛋糕:

public $components = array('Security'); 
在控制器

Source

+0

補充說,但我的註銷鏈接看起來一樣嗎?儘管登錄表單確實會獲得額外的隱藏輸入字段。那麼如何將此添加到我的註銷鏈接? – Cameron 2011-05-06 13:22:04

+0

據我所知,CakePHP只在表單中實現它。因此,您需要創建自己的隨機CSRF標記(或者如果Cake提供它,則使用自動生成的標記),以便將其放入用戶的PHP Session中。然後,您需要手動將CSRF令牌放入註銷鏈接,並檢查令牌是否與會話的令牌相同。 我敢打賭,有一個更好的方法來做到這一點... – Phen 2011-05-07 10:29:12