【发布时间】:2011-07-01 00:34:25
【问题描述】:
我刚刚发现 stackoverflow 有一个链接可以注销每台登录的计算机。
所以..我想过如何在 PHP 中实现相同的功能。我想出了使用 session_set_save_haldner 来控制 write() 方法。在 write() 方法中,我可以使会话文件以用户的用户名开头。例如,用户 john 可能有会话文件 john_kdkajdkak 和 john_29039dla。当 John 单击“Logout Everywhere”时,我可以编写一个代码来查找以“john”开头的文件名,然后删除它们以清除会话。
还有其他更好的解决方案吗?如果您已经实现了它,您是如何实现它的?
【问题讨论】:
-
更简单的方法是不使用 PHP 会话来跟踪谁登录了。自己实现相对容易,并且会给你一个可靠的方法来做到这一点。您至少应该使用数据库表或类似的东西而不是文件来支持这一点。
-
@Billy ONeal,最好使用 PHP 会话,但要更改会话的cookie 名称。 Roll-your-own 会话有各种安全隐患和风险,但更改 cookie 名称相对没有意义,并且将其与数据库表中的用户帐户关联起来非常容易。
-
“有各种安全隐患和风险”
-
如果您知道自己在做什么,则滚动您自己的会话管理的安全风险是最小的。对于许多项目来说,现有的 PHP 会话管理已经足够好了——你最好把时间花在其他任务上。