PHP中会话的可靠性如何

PHP中会话的可靠性如何,php,security,session,Php,Security,Session,我正在开发一个ajax应用程序,只是想知道会话在安全性方面有多可靠 我能否依赖会话作为用户标识,让他们在不询问当前密码的情况下更改密码?我不确定您所说的会话在安全性方面有多可靠 但是,关于你的另一个问题,我绝不允许用户在不提供当前密码的情况下更改其密码。原因很简单:如果我坐在一台有身份验证会话的计算机上,我将能够更改密码,而不必实际拥有该帐户 只是不要在会话中保存敏感数据。它们在“存在”方面也不是很可靠 不要让任何人在不提供当前密码的情况下更改密码。想象一下,你刚离开电脑,有人“为你”更改了密码

我正在开发一个ajax应用程序,只是想知道会话在安全性方面有多可靠


我能否依赖会话作为用户标识,让他们在不询问当前密码的情况下更改密码?

我不确定您所说的会话在安全性方面有多可靠

但是,关于你的另一个问题,我绝不允许用户在不提供当前密码的情况下更改其密码。原因很简单:如果我坐在一台有身份验证会话的计算机上,我将能够更改密码,而不必实际拥有该帐户

  • 只是不要在会话中保存敏感数据。它们在“存在”方面也不是很可靠
  • 不要让任何人在不提供当前密码的情况下更改密码。想象一下,你刚离开电脑,有人“为你”更改了密码

  • 会话存储在服务器端,因此它们尽可能安全。也就是说,仍然有可能有人会窃取您站点的唯一会话密钥,从而使他们能够完全访问用户帐户,但这只是客户端存储内容的问题


    你可以做第二件事,但你可以一直这样做,即使没有会议。。。所以我不知道你要去哪里。输入当前密码只是为了额外的安全措施/验证。

    会话使用cookie。该cookie容易受到所有基于cookie的攻击。包括火羊式的攻击

    您可以更改PHP处理cookie的方式,使其仅通过SSL(Https)发送。这会有所帮助,但不会阻止访问同一台计算机的攻击获得访问权限


    在更换密码时重新验证总是一个好主意。就像您不应该向用户显示其全部信用卡号或SSN一样。

    密码应该始终进行编码,因此我不明白为什么您必须在会话中存储密码登录页面时只需输入一次密码,然后在会话中保存一些信息,说明用户已签名,可能是用户ID。

    好,现在为什么我不应该在会话中保存敏感数据呢?会话通常保存在文本文件中,因此创建会话的进程可以读取所有文件。您必须注意,在您的Web服务器上下文中运行的脚本不可能访问除当前会话之外的任何其他会话文件。在大多数情况下,这并不难,但如果你不把任何敏感数据放在那里,你就不需要考虑它;)我不同意第1点(不要在会话中保存敏感数据)。只需将会话视为任何其他不安全的存储(如数据库)。如果您不想在数据库中存储明文密码(例如),那么您将希望对会话执行相同的操作。会话只是我提到的任何其他类型的存储(具有特殊的生命周期),会话通常存储在文件中,文件比数据库更容易受到攻击。但独立于此:如果将会话用作“临时存储”,则必须处理会话文件和数据库。