我们目前有2个网站http://www.foo.co.uk
和https://secure.foo.com
。
www网站没有SSL证书,并且位于不同的域中。
我们在http://www.foo.co.uk
上有一个登录按钮,点击后会打开一个带有表单的https://secure.foo.com
iframe,当用户登录时会在该域上创建一个会话Cookie(foo.com
)。
然后需要将会话cookie复制到foo.co.uk
,这样做会将您重定向到http://www.foo.co.uk/setcookie.php?session=abcd1234
,这允许我们在原始域上设置相同的cookie。
这不是一个非常安全的解决方案,所以我一直在研究如何让它变得更好 - 我发现的最好的想法是使用类似hash_hmac
的东西以及params到setcookie.php发送哈希脚本然后在创建cookie之前在另一端验证它。
虽然这样做更好,但它并不能防止人在中间发作。请记住,www不是SSL安全的,我认为你不能完全阻止它,所以接下来最好的事情是在哈希中加入一个时间戳,使其有效5分钟。
有没有人对我如何做得更好有任何想法,或指出这种做法有任何陷阱?我将非常感激。
答案 0 :(得分:1)
您可以在两个域之间拥有共享密钥,并使用对称加密算法来加密cookie值,或者在不安全域中设置公钥/私钥,并使安全域使用公钥来加密cookie不安全的域名。
另外,请记住,加密登录过程但之后通过不安全的渠道传输会话cookie可能允许攻击者冒充您的用户(有关详细信息,请参阅firesheep Firefox扩展程序)。