Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/security/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 用Cookies代替会话?_Php_Security_Session_Cookies - Fatal编程技术网

Php 用Cookies代替会话?

Php 用Cookies代替会话?,php,security,session,cookies,Php,Security,Session,Cookies,我所读到的和了解到的关于会话的内容是,会话id劫持之类的事情并不可靠。所以我决定我不会在我的项目中使用会话,我宁愿只使用普通的cookies,并希望得到最好的结果 所以基本上,我已经建立了一个类似于会议,但希望将更难破解。不幸的是,我似乎无法建立它难以破解。所以基本上,我想这更多的是一个安全问题,而不是cookies或会话之间的选择,但我似乎无法在任何纯文本中找到这一点 我应该在会话cookie中散列什么,如何散列?我读到过散列算法会发生冲突,攻击者只需几秒钟就可以创建一个字符串,该字符串在散列

我所读到的和了解到的关于会话的内容是,会话id劫持之类的事情并不可靠。所以我决定我不会在我的项目中使用会话,我宁愿只使用普通的cookies,并希望得到最好的结果

所以基本上,我已经建立了一个类似于会议,但希望将更难破解。不幸的是,我似乎无法建立它难以破解。所以基本上,我想这更多的是一个安全问题,而不是cookies或会话之间的选择,但我似乎无法在任何纯文本中找到这一点

我应该在会话cookie中散列什么,如何散列?我读到过散列算法会发生冲突,攻击者只需几秒钟就可以创建一个字符串,该字符串在散列时会与cookie中的实际内容发生冲突,即使它可能不相同。我想我想问的是,在cookie中保存这些信息的正确方法是什么,我应该在cookie中存储哪些信息


我知道,基本上使用
httpOnly
没有攻击者能够抓取cookie,但我想这个项目可能不会使用
SSL
,所以有旧的点击方法可用。我知道我正试图在这里用棍子和石头建造一座摩天大楼,但询问仍然值得一试。

完全避免会话的问题是,某些值不应该是用户可设置的。例如,如果您有一个会话变量
已登录
,该变量仅在用户成功进行身份验证时设置,那么使用cookie安全地实现这一点将很困难。问题在于,用户可以设置自己的cookie(因为它来自客户端)并在不使用密码的情况下登录

现在,您可以使用这种方法,将用户的凭据存储在cookie中,并对每个请求进行身份验证,但这也存在许多问题。首先,最好限制以明文形式向服务器发送凭据的频率;如果使用会话,则只发送一次会话。其次,这种方法意味着密码未加密地存储在本地计算机上(存储的网站密码通常使用主密码**进行加密)。因此,这种方法可能会恶化用户的整体安全性

您可以通过登录并让登录系统设置加密cookie(使用对称加密)来缓解这些问题。每一个请求都会被解密和认证,每一个请求都可以安全地传输,并且在本地计算机上存储cookie会更安全。然而,这里您添加了相当多的复杂性

因此,我倾向于建议您坚持使用会话,但要围绕出现的任何安全问题进行必要的阅读



**最近发现Chrome以明文形式存储保存的密码,没有使用主密码对密码进行加密的选项()。这引发了一场关于某些安全功能是否只是“剧院”的在线辩论(即,仅看起来安全,而实际上没有添加任何额外的安全性)。

实际上,您想用cookie替换cookie(来自会话)。没道理

这从开头的句子就错了。你害怕方法A,因为你在某个地方读到它不可靠(不理解原因)。因此,您转向方法B,它本质上是不可靠的,现在询问如何修复它。确实错了。这就是人们戴锡箔帽的原因,他们读到了中情局的思维探测。你看起来很困惑,但仅仅从这个问题很难找出你困惑的根源。你能解释一下你想解决的具体问题吗?(例如,什么类型的攻击使您避免了会话处理?如果您正确设置了系统,则不应发生会话劫持。)会话的概念相当简单:您不将内容存储在cookie中,而是将其存储在本地,为其分配一个标识符,并仅将其存储在cookie中。最终结果与此类似,但窥探连接的用户或攻击者无法读取或操作数据,并且您的通信量更少。在会话中有很多事情可能会出错,比如使会话标识符易于猜测,但在cookie中也会出错(更糟糕)。老实说,我想不出有哪种攻击对cookies比对会话更难实施。