2011-03-05 22 views

回答

4

这是一个非常糟糕的主意。您应该使用session_start(),它会为您做所有事情,然后您可以使用$_SESSION来存储有关该用户的信息。如果您在数据库中存储密码哈希并将其用作cookie,那么您完全破坏了哈希密码的用途。攻击者可以使用sql注入来获取散列,然后只需登录而不必破解散列。

几年前,Wordpress很容易受到这种情况的影响。该代码库存在一些非常严重的安全问题。

+0

关闭浏览器会丢失会话。有一个安全的Cookie协议[安全Cookie协议](http://www.cse.msu.edu/~alexliu/publications/Cookie/cookie.pdf) – jpiasetz 2011-03-05 19:05:05

+1

@jpiasetz我希望我可以投票评论。不要使用这个协议。如果您需要在会话之间存储信息,请使用数据库。 – rook 2011-03-05 19:06:37

+1

@jpiasetz这个协议并没有解决firesheep样式的cookie被盗用。它关于在客户端存储敏感信息,并使数据的完整性容易受到离线攻击(想想新的oracle asp.net填充攻击)。这是密码学的滥用,因为通过使用加密的随机数作为会话ID并将任何信息存储在数据库中可以避免所有问题。请停止发布此链接,这是一个不好的主意。 – rook 2011-03-05 19:14:52