php文件包含目录配置open_basedir的使用与性能分析

php文件包含目录配置open_basedir的使用与性能分析

内容导读

收集整理的这篇技术教程文章主要介绍了php文件包含目录配置open_basedir的使用与性能分析,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2714字,纯文字阅读大概需要4分钟

内容图文

1.open_basedir介绍

open_basedir 将php所能打开的文件限制在指定的目录树中,包括文件本身。当程序要使用例如fopen()file_get_contents()打开一个文件时,这个文件的位置将会被检查。当文件在指定的目录树之外,程序将拒绝打开。

本指令不受安全模式打开或关闭的影响。

2.open_basedir设置方法

1.在php.ini 加入

open_basedir="指定目录"

2.在程序中使用

ini_set('open_basedir', '指定目录');

但不建议使用这种方法

3.在apache的httpd.conf中的Directory配置

php_admin_value open_basedir "指定目录"

httpd.conf中的VritualHost

php_admin_value open_basedir "指定目录"

4.nginx fastcgi.conf

fastcgi_param PHP_VALUE "open_basedir=指定目录"

用open_basedir指定的限制实际上是前缀,不是目录名。
也就是说 open_basedir=/home/fdipzone 也会允许访问/home/fdipzone_abc,如果要将访问限制为目录,请使用斜线结束路径名,例如:open_basedir=”/home/fdipzone/”

如果要设置多个目录,window使用;分隔目录,linux使用:分隔目录。

3.使用open_basedir限制目录访问

首先创建一个VirtualHost,
设置open_basedir 为/home/fdipzone/sites/in.fdipzone.com/

<VirtualHost *:80>

ServerAdmin webmaster@localhost

DocumentRoot /home/fdipzone/sites/in.fdipzone.com

ServerName in.fdipzone.com

php_admin_value open_basedir "/home/fdipzone/sites/in.fdipzone.com/"

<Directory "/home/fdipzone/sites/in.fdipzone.com">



allow from all Options + Indexes

</Directory></VirtualHost>

在上一层目录 /home/fdipzone/sites/ 中创建一个test.txt文件,在in.fdipzone.com中创建php执行以下代码

<?phpecho file_get_contents('../test.txt');?>

因为test.txt不在限定的目录范围内,因此php提示警告
Warning: file_get_contents(): open_basedir restriction in effect. File(../test.txt) is not within the allowed path(s): (/home/fdipzone/sites/in.fdipzone.com/) in /home/fdipzone/sites/in.fdipzone.com/index.php on line 3

4.设置open_basedir的性能分析

open_basedir开启后会影响I/O,因为每个调用的文件都需要判断是否在限制目录内。

测试程序,读取限制目录内同一文件10000次

<?php// 记录开始时间$starttime = getMicrotime();// 读取10000次文件for($i=0; $i<10000; $i++){

file_get_contents('test.txt');}// 记录结束时间$endtime = getMicrotime();printf("run time %f msrn", ((float)($endtime)-(float)($starttime))*1000);function getMicrotime(){

list($usec, $sec) = explode(' ', microtime());

return (float)$usec + (float)$sec;}?>

关闭open_basedir测试
run time 137.237072 ms

打开open_basedir测试
run time 404.207945 ms

开启open_basedir后,执行时间是关闭的3倍。


总结:使用open_basedir可以限制程序可操作的目录和文件,提高系统安全性。但会影响I/O性能导致系统执行变慢,因此需要根据具体需求,在安全与性能上做平衡。

本文讲解了php文件包含目录配置open_basedir的使用与性能分析,更多相关内容请关注Gxl网。

相关推荐:

php使用正则去除宽高样式

mysql表数据行列转换方法

nginx快速查看配置文件的方法

以上就是php文件包含目录配置open_basedir的使用与性能分析的详细内容,更多请关注Gxl网其它相关文章!

内容总结

以上是为您收集整理的php文件包含目录配置open_basedir的使用与性能分析全部内容,希望文章能够帮你解决php文件包含目录配置open_basedir的使用与性能分析所遇到的程序开发问题。 如果觉得技术教程内容还不错,欢迎将网站推荐给程序员好友。

内容备注

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。


本文关键词:

联系我们

在线咨询:点击这里给我发消息

邮件:w420220301@qq.com