49彩票集团首页-49彩票集团官网|官网首页

49彩票集团让大家拥有最好的账号使用功能,49彩票集团是为大家带来更加方便的使用途径,是因为在49彩票集团娱乐的玩家们越来越多,发展成为最受欢迎的网上体育娱乐公司。

require,include和require_once,include_once 出现open_ba

2019-10-01 作者:计算机网络   |   浏览(76)

只要使用require或include包含文件(不管是./xx.php还是xx.php)都是报下面的错误
Warning: include() [function.include]: open_basedir restriction in effect. File() is not within the allowed path(s): (/var/www/:/tmp/:/var/cache/) in /var/www/testdir.php on line 2

先看一段我们不考虑open_basedir安全问题代码

Warning: session_start() [function.session-start]: open_basedir restriction in effect. File解决方法

php 5.2.17听说 open_basedir 有所改动,查看发现原来php5.2.10中的php.ini是使用右斜杠

在php写了句require_once ‘../Zend/Loader.php’; 报错:
Warning: require_once() [function.require-once]: open_basedir restriction in effect. File(../Zend/Loader.php) is not within the allowed path(s): (D:/phpnow/vhosts/zf.com;C:/Windows/Temp;) in D:/phpnow/vhosts/zf.com/index.php on line 6

Warning: include() [function.include]: open_basedir restriction in effect. File(/www/webpublic_html/admin/inc/inc.php教程) is not within the allowed path(s): (/www/webpublic_html/searchhight:/tmp) in /www/webpublic_html/searchhight/index.php on line 2

 

49彩票集团,Warning: require_once(../Zend/Loader.php) [function.require-once]: failed to open stream: Operation not permitted in D:/phpnow/vhosts/zf.com/index.php on line 6

Warning: include(/www/webpublic_html/admin/inc/inc.php) [function.include]: failed to open stream: Operation not permitted in /www/webpublic_html/searchhight/index.php on line 2

 代码如下

Fatal error: require_once() [function.require]: Failed opening required '../Zend/Loader.php' (include_path='D:/phpnow/vhosts/zf.comZend;.;C:/php5/pear') in D:/phpnow/vhosts/zf.com/index.php on line 6字面分析是受到了open_basedir的限制,造成Operation not permitted(操作不被允许)。

Warning: include() [function.include]: Failed opening '/www/webpublic_html/admin/inc/inc.php' for inclusion (include_path='.:/www/wdlinux/php-5.2.17/lib/php') in /www/webpublic_html/searchhight/index.php on line 2

open_basedir = "e:/web/;C:/WINDOWS/TEMP/;"

打开php.ini跳转到open_basedir相关设置段落:

Fatal error: Class 'Db' not found in /www/webpublic_html/searchhight/index.php on line 3

升级到5.2.17 就tmd一直报错,改成左斜杠就好了,这叫什么事,难怪很多程序都会手工处理一下斜杠问题,估计就为了应对这一出

; open_basedir, if set, limits all file operations to the defined directory
; and below.  This directive makes most sense if used in a per-directory
; or per-virtualhost web server configuration file. This directive is
; *NOT* affected by whether Safe Mode is turned On or Off.

Fatal error : session_start() [<a href='function.session-start'>function.session-start</a>]: Failed to initialize storage module: files (path: ) in E:footloginlogin.php on line 4

 代码如下

;open_basedir =如果设置了open_basedir,那么所有能被操作的文件就只能限制在open_basedir指定的目录里面。 这个在虚拟主机里面这个指令相当有用。不管安全模式是否打开,这个指令都不受影响。 看来php.ini没有设置open_basedir。 打开apache虚拟主机配置文件:

开启了session_start()后出现了这个问题。
php.ini 的open_basedir中加入C:WINDOWSTEMP

open_basedir = "e:web;C:WINDOWSTEMP;"

 代码如下

,修改.ini文件是很容易出错的。因为该配置文件不是仅仅服务一个程序,所以修改配置文件,带来的后果

这样就解决了

<virtualhost *>
    <directory "../vhosts/zf.com">
        Options -Indexes FollowSymLinks
    </directory>
    ServerAdmin admin@zf.com
    DocumentRoot "../vhosts/zf.com"
    ServerName zf.com:80
    ServerAlias *.zf.com
    ErrorLog logs/zf.com-error_log
    php_admin_value open_basedir "D:/phpnow/vhosts/zf.com;C:/Windows/Temp;"
</virtualhost>

可能有很大的影响。通过

如果不是php设置问题错误提示一般是 Warning: include() [function.include]: URL file-access is disabled in the server configuration

里面的php_admin_value open_basedir就限定了操作目录。我这里是本地测试,安全因素不考虑,直接将 php_admin_value open_basedir “D:/phpnow/vhosts/zf.com;C:/Windows/Temp;” 删除掉,重新启动apache,

ini_set ( 'session.save_path' , dirname ( __FILE__ ) . '/../dirname/' ) ;

这个解决办法只要把包含路径调正常即可。

上面如果给利用完可以可随意删除服务器文件了,但是比较幸运的是目前php站点的安全配置基本是open_basedir+safemode,确实很无敌、很安全,即使在权限没有很好设置的环境中,这样配置都是相当安全的,当然了,不考虑某些可以绕过的情况。本文讨论两点开启open_basedir后可能导致的安全隐患(现实遇到的),一个也许属于php的一个小bug,另外一个可能是由于配置不当产生的。

一、open_basedir中处理文件路径时没有严格考虑目录的存在,这将导致本地包含或者本地文件读取的绕过。

看一个本地文件任意读取的例子:

本文由49彩票集团发布于计算机网络,转载请注明出处:require,include和require_once,include_once 出现open_ba

关键词: