【发布时间】:2012-05-25 12:38:37
【问题描述】:
上个月我读了很多关于这个的书,我尝试了很多不同的东西,听到了很多不同的意见。
在这个主题的完全无知中,我已经开始在 PHP 中构建一个自定义会话处理程序,在每个页面中运行一个验证脚本,它检查保存在 $_SESSION 中的以下条件是否为真(所有它们都在MD5):
1) IP 等于最后一页使用的最后一个 IP 2) 浏览器等于最后一页使用的浏览器
我有一个自定义会话超时,在登录时指定,这只是让我保持登录状态例如 5 分钟。我也在重新生成每个页面的 id。
我进入了#php irc 频道,有人说我疯了,因为我试图复制 php 预定义函数来完成所有这些工作,并说我只是设置 PHP 变量(session.max_time 等)到极限,就够了。
我已经设置了它,但它在某些服务器(localhost 和 webserv)上工作,其他人似乎忽略了它。
我的一位老师让我使用数据库会话验证。还有一次,irc 中的人骂我疯了,因为每次加载页面时只建立一个连接来验证这些内容,从而浪费大量内存。
拜托,我真的不知道什么是正确的选择,应该遵循什么。
有什么建议吗?
【问题讨论】:
-
这取决于。但是,从您问题的第一部分来看,#irc 的问题是正确的:它已经存在。如果某些服务器忽略设置,则您有问题,某些服务器忽略设置,而不是您需要自己实现它;)
-
MD5 没有加密它是散列。完全不同的东西。加密是可逆的,散列不是。
-
已更正大安,感谢您的注意。 KingCrunch 我同意,但我需要让我的应用程序在我测试的大多数服务器上运行,而且它无法运行真的很奇怪。
标签: php mysql session session-timeout