永远存在的PHP安全身份验证

时间:2012-03-27 12:06:31

标签: php mysql security authentication authorization

我打算写一个javascript插件,它将放在几个不同的网站上。该插件说当前访问过的网站对我当前登录的用户进行了书签。

我网站的用户可以使用他们的用户名/电子邮件和密码登录。现在我想存储一个永远不会在用户浏览器的cookie中过期的访问令牌,所以每当他/她点击插件书签按钮时,javascript将抓取cookie并将请求发送到服务器,以便服务器知道谁用户生成它

我的问题是,这样做的安全方法是什么?我可以简单地将用户ID存储在cookie中,但这对任何用户来说都非常容易模拟。如果我使用MD5哈希加密用户ID,则每次用户登录时哈希都是相同的,并且可以充当用户ID,因此不是解决方案。你会推荐我什么解决方案?还请把它的算法链接写给我。

1 个答案:

答案 0 :(得分:1)

基于存储在浏览器中的数据的某种Challenge-Response协议 - 可能在浏览器上使用localStorage or domStorage来存储密钥,该密钥与服务器的“质询”密码结合以响应“响应”哈希 - 当服务器验证时,允许用户进行。

这不会保护用户的浏览器,但会使外部观察者(他们能以某种方式击败SSL - 你应该使用HTTPS!)来执行重播攻击。

示例协议:Secure Remote Password Protocol(客户端的JavaScript implementation