2011-05-06 145 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