首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >厨师对抗黑客的诚信

厨师对抗黑客的诚信
EN

Stack Overflow用户
提问于 2015-11-10 14:01:57
回答 2查看 339关注 0票数 0

我正在尝试开发一个PHP登录脚本,它可以使用cookie启动安全登录。我知道你可以用电脑做很多事情,我正在向社区询问有关cookies安全性的信息。我最大的问题是:有人能在不登录的情况下创建cookie,欺骗帐户并访问站点吗?检查这个用户是否合法的最安全的方法是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-11-10 16:01:37

在我看来,使用cookie over session更安全,因为它的基本会话标识符也存储在cookie或http请求中,这些请求更容易发生会话劫持。根据需求,我通常是将所有的用户标识符存储在一个cookie中。有点像:ID:PUBLIC_KEY:USER_DATA_SESSION_HASH_VERIFIER。其中:

ID是用户id。

PUBLIC_KEY是存储在db中的随机字符串,如果您在每次登录时重新生成它,可以进一步保护它,同时也要记住,它将不验证来自其他设备、浏览器的所有登录。因此,从本质上说,您只能一次从一个地方登录。

USER_DATA_SESSION_HASH_VERIFIER是由用户id、用户代理、当前ip地址、公钥、私钥组成的散列,它与盐类(令牌)混合在一起,将多次md5和sha1与最终的sha1或sha256哈希混合在一起。

因此,使用IDPUBLIC_KEY,我选择用户和一些数据,比如私钥,重新生成哈希,并将其与USER_DATA_SESSION_HASH_VERIFIER匹配。请记住,在哈希中拥有当前ip将使用动态ip注销用户,如果他们重新启动互联网连接,这将有一个新的ip地址。在散列中混合用户代理将阻止其他用户在不同的浏览器上使用cookie。

现在,如果您为facebook这样的用户寻找类似会话管理的内容,那么您可以在其中混合一个会话标识符,并将会话标识符与数据库中该会话的唯一公钥存储在一起。

例如。1:asdfg:uss32:sha1_hash 1:GGGAS:2312:sha1_hash.这样,您就不能将asdfg键用于会话2312

也许还有其他更好的实践,但对我来说,这似乎是一个非常好的解决方案。

票数 0
EN

Stack Overflow用户

发布于 2015-11-10 14:09:13

cookies是浏览器存储的,所以是的,它们可以创建cookie。您通常要做的是为user id设置cookie,为session hash设置另一个cookie(用户登录时随机生成的内容),并检查会话IP。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33631780

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档