Php 登录系统-每次加载时检查呼叫密码

Php 登录系统-每次加载时检查呼叫密码,php,performance,security,Php,Performance,Security,目前,我将用户密码纯文本存储在会话中。然后我使用password\u-verify($plain\u-password,$hash\u-password)对其进行比较。我认为这真的是效率低下和安全性差 第二种方法可以是只检查一次(而不是在会话中存储密码纯文本),然后在用户是否登录时存储布尔值。只有一个问题;如果用户更改密码怎么办?然后用户仍然会登录到其他设备,这当然是不好的。等。用户可能希望更改其密码,因为他/她忘记在公用计算机上注销 如何解决方法二的问题?正确的方法是什么?您可以将密码更改日期

目前,我将用户密码纯文本存储在会话中。然后我使用
password\u-verify($plain\u-password,$hash\u-password)对其进行比较。我认为这真的是效率低下和安全性差

第二种方法可以是只检查一次(而不是在会话中存储密码纯文本),然后在用户是否登录时存储布尔值。只有一个问题;如果用户更改密码怎么办?然后用户仍然会登录到其他设备,这当然是不好的。等。用户可能希望更改其密码,因为他/她忘记在公用计算机上注销


如何解决方法二的问题?正确的方法是什么?

您可以将密码更改日期存储在数据库中,并将其与会话创建日期进行比较。如果在会话开始后更改了密码,您可以记录会话用户数据

@Fred ii-这样您就不会认为我在威胁人们的安全。该应用程序尚未投入使用:)您肯定在威胁人们的安全。您不应该在会话中存储密码。见下面的答案。如果您还没有使用数据库,则需要比较时间和使用数据库。会话是可以的,cookies也是可以的,只是不存储密码而已。我知道。这也是我问这个问题的原因,因为我知道安全性很差。我永远不会在不知道安全性处于首位的情况下使用该应用程序——这是我的观点:)请看这个问答,它将向您展示一些想法。您需要检查上次登录的日期/时间差异。您使用的是MySQL、PostgreSQL还是其他什么?不要在会话中存储密码;将密码存储在用户架构中,会话架构将保持无密码状态。您认为我应该每5分钟检查一次还是每5分钟检查一次?(出于性能考虑),如果有人更改密码,很可能是因为某些安全原因,所以会话应该立即终止。