更换session保存的路径

用户可通过 ini_set()session_save_path() 函数来设置 session.save_path。在 session.save_path中应存在一个用户保存用户tmp文件的路径,但session.save_path的句法为:

   [/PATH]  或  [N;/PATH]

  N可以为字符串(应为数字)

   例如:

  1. session_save_path("/DIR/WHERE/YOU/HAVE/ACCESS")
    2. session_save_path("5;/DIR/WHERE/YOU/HAVE/ACCESS")

  如果用户使用了多 个";"字符,就可以创建伪造目录结构减少"../",绕过safe_mode和open_basedir限制访问其他目录。

 

session.save_path 定义了传递给存储处理器的参数。如果选择了默认的 files 文件处理器,则此值是创建文件的路径。默认为 /tmp

 

此指令还有一个可选的 N 参数来决定会话文件分布的目录深度。例如,设定为 '5;/tmp' 将使创建的会话文件和路径类似于 /tmp/4/b/1/e/3/sess_4b1e384ad74619bd212e236e52a5a174If 。要使用 N 参数,必须在使用前先创建好这些目录。在 ext/session 目录下有个小的 shell 脚本名叫 mod_files.sh 可以用来做这件事。此外注意如果使用了 N 参数并且 N 大于 0,那么将不会执行自动垃圾回收,更多信息见 php.ini 。另外如果用了 N 参数,要确保将 session.save_path 的值用双引号 "quotes" 括起来,因为分隔符分号( ; )在 php.ini 中也是注释符号。

 

另外 session_save_path() 必须写在 session_start() 的前面,session_save_path() 也可以获得当前session存放的路径,尝试:

 

 
<?php
echo session_save_path();
 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值