我正在使用PHP会话在我的网站上存储跟踪数据。会话以session_start();
顺便说一下 - 这不是登录脚本。我正在跟踪用户输入的第一页,日期/时间和一些其他变量。
我将信息存储在数据库中,最后使用以下命令将用户重定向到页面:
header("Location: ".$URLHERE);
exit();
关于使用会话的一些问题:
(我担心在我的Apache服务器上构建数据文件)
谢谢:)
答案 0 :(得分:4)
首先,请执行这些
注意:在开始会话之前,最好将会话路径保存到文件夹中。还为此文件夹提供读/写权限。例如
session_save_path('会话文件夹的路径'/会话名称); 在session_start();
应在设置或检索任何会话之前调用session_start。最佳做法是在页面的乞讨点设置会话,即在打开php标签后立即(
非常重要的一点 - >必须在浏览器中启用Cookie
确保关闭_globals,您可以在php.ini文件中查看,也可以使用phpinfo()。
在每个标题重定向之后。请使用exit以使脚本不再继续,在重定向之前请不要删除或清空会话。还要重定向到同一个域。
$ _ SESSION [key] - >确保不会在任何地方覆盖此密钥。
文件扩展名必须始终为.php
我希望使用上述步骤为您提供帮助。
答案 1 :(得分:1)
不,会话垃圾回收由系统根据php.ini
的{{3}}属性进行管理。由于您的PHP脚本是基于每个请求运行的,因此调用session_destroy()
将导致在每个请求结束时丢失有关用户的数据。
php会话没有安全问题,只有风险是攻击者窃取了cookie,但你可以避免需要https。
请注意,您也可以在没有会话的情况下执行此操作,但使用Cookie API。
答案 2 :(得分:1)
这是您的答案
1。由于我没有明确地在重定向后关闭会话,PHP是否从磁盘中删除会话变量 - 或者我是否必须自己处理?
当会话创建然后在服务器上创建一个文件时,如果用户在网站上不再活动,那么它将自动删除为默认会话活动时间1440秒(24分钟)。可以通过编辑 session.gc_maxlifetime = 1440
从 php.ini 设置会话超时
2。 PHP会话是否存在安全问题?这不是登录,但我的脚本确实依赖会话变量来跟踪有关该unqiue访问的信息。
不,PHP会话没有问题,只需要处理XSS