PHP使用会话数据创建sess_空文件
我正在用PHP5.3.5-1ubuntu7.2运行Web服务器Apache/2.2.17,注意到PHP正在/tmp目录中创建sess_null文件。这就导致了会话劫持 在这里;php.ini中的会话部分:PHP使用会话数据创建sess_空文件,php,session,Php,Session,我正在用PHP5.3.5-1ubuntu7.2运行Web服务器Apache/2.2.17,注意到PHP正在/tmp目录中创建sess_null文件。这就导致了会话劫持 在这里;php.ini中的会话部分: session.auto_start Off Off session.bug_compat_42 Off Off session.bug_compat_warn Off Off session.cache_expire 180 180 session.cache_limiter
session.auto_start Off Off
session.bug_compat_42 Off Off
session.bug_compat_warn Off Off
session.cache_expire 180 180
session.cache_limiter nocache nocache
session.cookie_domain no value no value
session.cookie_httponly Off Off
session.cookie_lifetime 0 0
session.cookie_path / /
session.cookie_secure Off Off
session.entropy_file no value no value
session.entropy_length 0 0
session.gc_divisor 1000 1000
session.gc_maxlifetime 1860 1860
session.gc_probability 1 1
session.hash_bits_per_character 5 5
session.hash_function 0 0
session.name PHPSESSID PHPSESSID
session.referer_check no value no value
session.save_handler files files
session.save_path /tmp /tmp
session.serialize_handler php php
session.use_cookies On On
session.use_only_cookies Off Off
session.use_trans_sid 0 0
这主要是默认值
有没有人遇到过这样的问题,可以帮助我
谢谢如果文件名为
sess\u null
,这看起来像是会话id
已设置为null
。默认情况下,PHP会创建一个文件名,在id前面加上sess\uu
我会假设(我只能假设因为您没有发布代码),您将会话id设置为代码中的某个地方的
“null”
。设置会话id的函数是。如何在处理多个站点的服务器上处理此问题
通过将新路径设置为从web根目录返回一个目录,从/tmp保留会话。使其远离/tmp。因此,如果您的web根目录是/home/username/web_root,那么您的会话将在/home/username/sessions中结束,在web可访问路径之外,而不是在/tmp中。
以下假设所有用户可执行文件都处于同一级别!当我每次调用带有mod_rewrite的单个脚本时,这对我来说是可行的
ini_set('session.save_path', realpath(dirname($_SERVER['SCRIPT_FILENAME']) . '/../sessions') );
我做的其他简单的事情:
开始训练,给我一个更好的控制
session_start();
$s = &$_SESSION;
Authenticate代码只是设置一个标志,我在每次需要auth的操作之前检查该标志
$s['user']['authenticated'] = true;
注销代码会破坏会话:
session_destroy();
注销该网站的所有用户:
rm -f /home/username/sessions/*
不幸的是,情况并非如此。我发现一个对session_id()的调用可能是用空/null参数调用的,但在其周围添加检查并不能解决这个问题。而这似乎是唯一的召唤。问题是,我正在使用旧代码,这些代码刚刚被移动到新的虚拟机上,我无法访问旧的服务器配置,调试这个问题相当困难。提示和建议如果您知道会话存储的位置,您可以转储
会话id()
;在存储/关闭(session\u write\u close()
)或销毁(session\u destroy()
)之前。请参见:-我创建了一个与PHP5.2或PHP5.3一起使用的函数,甚至可能是一个早期的PHP版本,PHP5.4有一个内置解决方案。