日期:2011-05-02 15:59:00  来源:本站整理

php open_basedir设置以及关于安全[服务器安全]

赞助商链接



  本文“php open_basedir设置以及关于安全[服务器安全]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

看了军神blog,回来研究的.

open_basedir可将用户拜候文件的活动范围限制在指定的区域,普通是其家目录的途径,也可用标记"."来代表当前目录.注意用open_basedir指定的限制实际上是前缀,而不是目录名.
举例来说: 若"open_basedir = /dir/user", 那么目录 "/dir/user" 和 "/dir/other"都是可以拜候的.所以假如要将拜候限制在仅为指定的目录,请用斜线完毕途径名.
open_basedir也可以同时设置多个目录,在Windows顶用分号脱离目录,在任何别的系统顶用冒号脱离目录.当其作用于Apache模块时,父目录中的open_basedir路独自动被担当.

Apache+PHP配置办法有三种:
办法一:在php.ini里配置
open_basedir = .:/tmp/

办法二:在Apache配置的VirtualHost里设置(httpd-vhosts.conf)
php_admin_value open_basedir .:/tmp/

办法三:在Apache配置的Direcotry里设置
php_admin_value open_basedir .:/tmp/

关于三个配置办法的注释:
a、办法二的优先级高于办法一,也就是说办法二会覆盖办法一;办法三的优先级高于办法二,也就是说办法三会覆盖办法二;
b、配置目录里加了“/tmp/”是因为php默许的暂时文件(如上传的文件、session等)会放在该目录,所以普通需求增添该目录,不然部份功效将无法利用;
c、配置目录里加了“.”是指运行php文件的当前目录,这样做可以避免每个站点一个一个设置;
d、假如站点还利用了站点目录外的文件,需求单独在对应VirtualHost设置该目录;

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
这里是我实行的一个例子,设置了两个host,当然一块把Apache设置vitualHost的办法也列出了:

#虚拟主机配置文件

NameVirtualHost *:80

#简单设置情势
<VirtualHost *:80>
    ServerAdmin admin@8100.cc
    DocumentRoot "C:/AWEB/phproot/test"
    ServerName localhost
    #ServerAlias www.test.com
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>
#具体设置情势
<VirtualHost *:80>
    ServerAdmin admin@cc.cc
    DocumentRoot "C:/AWEB/phproot/test2"
    ServerName www.test2.com
    # php_admin_value open_basedir C:/AWEB/phproot/test2/;C:/windows/temp/     放在这里也可以
    <Directory "C:/AWEB/phproot/test2">
          Options Indexes FollowSymLinks
          AllowOverride Options FileInfo
         Order allow,deny
         Allow from all
         DirectoryIndex index.htm index.html index.php
        php_admin_value open_basedir c:/AWEB/phproot/test2/;C:/windows/temp/
  </Directory>
         Alias /phpmyadmin "C:/AWEB/phpMyAdmin/"
          <Directory "C:/AWEB/phpMyAdmin">
           AllowOverride AuthConfig
           Order allow,deny
           Allow from all
         </Directory>
    ErrorLog "logs/error.log"
    CustomLog "logs/access.log" common
</VirtualHost>

------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
最后转军神的那两句话:

1、open_basedir中处理文件途径时没有严峻考虑目录的存在,这将招致本地包含大概本地文件读取的绕过(归并/aaa/../../招致linux的目录查抄作废).

2、open_basedir的值配置不当,有大概招致目录超越(配置时忘掉目录最后的斜杠 / ).   以上是“php open_basedir设置以及关于安全[服务器安全]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 编写PHP代码总结
  • 10个风趣的 PHP 教程
  • PHP汉字转换拼音的类
  • 来点新手PHP学习心得
  • php应用readfile函数给躲藏下载文件地址增添权限判
  • PHP小研究拿出来和大家分享
  • 10 个有意思的 PHP 教程
  • PHP常常简单记乱的知识
  • PHP入门指导:若何学习PHP?
  • PHP中文件包含语句的辨别
  • PHP浮点数显示和转成字符串
  • PHP的chm手册打不开怎么办
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

    文章评论评论内容只代表网友观点,与本站立场无关!

       评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
    Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .