最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

php文件包含目錄配置open_basedir的使用與性能詳解

 更新時間:2017年04月03日 09:39:19   投稿:jingxian  
下面小編就為大家?guī)硪黄猵hp文件包含目錄配置open_basedir的使用與性能詳解。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧

1.open_basedir介紹

open_basedir 將php所能打開的文件限制在指定的目錄樹中,包括文件本身。當(dāng)程序要使用例如fopen()或file_get_contents()打開一個文件時,這個文件的位置將會被檢查。當(dāng)文件在指定的目錄樹之外,程序?qū)⒕芙^打開。

本指令不受安全模式打開或關(guān)閉的影響。

2.open_basedir設(shè)置方法

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指定的限制實(shí)際上是前綴,不是目錄名。

也就是說 open_basedir=/home/fdipzone 也會允許訪問/home/fdipzone_abc,如果要將訪問限制為目錄,請使用斜線結(jié)束路徑名,例如:open_basedir=”/home/fdipzone/”

如果要設(shè)置多個目錄,window使用;分隔目錄,linux使用:分隔目錄。

3.使用open_basedir限制目錄訪問

首先創(chuàng)建一個VirtualHost,

設(shè)置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/ 中創(chuàng)建一個test.txt文件,在in.fdipzone.com中創(chuàng)建php執(zhí)行以下代碼

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

因?yàn)閠est.txt不在限定的目錄范圍內(nèi),因此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.設(shè)置open_basedir的性能分析

open_basedir開啟后會影響I/O,因?yàn)槊總€調(diào)用的文件都需要判斷是否在限制目錄內(nèi)。

測試程序,讀取限制目錄內(nèi)同一文件10000次

<?php
// 記錄開始時間
$starttime = getMicrotime();

// 讀取10000次文件
for($i=0; $i<10000; $i++){
  file_get_contents('test.txt');
}

// 記錄結(jié)束時間
$endtime = getMicrotime();

printf("run time %f ms\r\n", ((float)($endtime)-(float)($starttime))*1000);

function getMicrotime(){
  list($usec, $sec) = explode(' ', microtime());
  return (float)$usec + (float)$sec;
}
?>

關(guān)閉open_basedir測試

run time 137.237072 ms

打開open_basedir測試

run time 404.207945 ms

開啟open_basedir后,執(zhí)行時間是關(guān)閉的3倍。

總結(jié):使用open_basedir可以限制程序可操作的目錄和文件,提高系統(tǒng)安全性。但會影響I/O性能導(dǎo)致系統(tǒng)執(zhí)行變慢,因此需要根據(jù)具體需求,在安全與性能上做平衡。

以上這篇php文件包含目錄配置open_basedir的使用與性能詳解就是小編分享給大家的全部內(nèi)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • php的命名空間與自動加載實(shí)現(xiàn)方法

    php的命名空間與自動加載實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于php的命名空間與自動加載實(shí)現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),對大家學(xué)習(xí)或者使用php具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-08-08
  • 合格的PHP程序員必備技能

    合格的PHP程序員必備技能

    要想成為一個合格的PHP程序員需要掌握許多技能,這篇文章就向大家介紹了一個合格的PHP程序員必備技能,想要真正了解php程序的朋友一定仔細(xì)閱讀,判斷自己具備多少個技能。
    2015-11-11
  • Apache服務(wù)器下防止圖片盜鏈的辦法

    Apache服務(wù)器下防止圖片盜鏈的辦法

    這篇文章主要介紹了Apache服務(wù)器下防止圖片盜鏈的辦法,檢查.htaccess文件的配置,需要的朋友可以參考下
    2015-07-07
  • PHP基于MySQL數(shù)據(jù)庫實(shí)現(xiàn)對象持久層的方法

    PHP基于MySQL數(shù)據(jù)庫實(shí)現(xiàn)對象持久層的方法

    這篇文章主要介紹了PHP基于MySQL數(shù)據(jù)庫實(shí)現(xiàn)對象持久層的方法,實(shí)例分析了php實(shí)現(xiàn)持久層的相關(guān)技巧,需要的朋友可以參考下
    2015-06-06
  • 詳解Laravel制作API接口

    詳解Laravel制作API接口

    API(Application Programming Interface,應(yīng)用程序編程接口)是一些預(yù)先定義的函數(shù),目的是提供應(yīng)用程序與開發(fā)人員基于某軟件或硬件得以訪問一組例程的能力,而又無需訪問源碼,或理解內(nèi)部工作機(jī)制的細(xì)節(jié)。本文將詳細(xì)介紹Laravel制作API接口。
    2021-05-05
  • PHP+MySQL存儲數(shù)據(jù)常見中文亂碼問題小結(jié)

    PHP+MySQL存儲數(shù)據(jù)常見中文亂碼問題小結(jié)

    這篇文章主要介紹了PHP+MySQL存儲數(shù)據(jù)常見中文亂碼問題,針對php+mysql常見的中文亂碼問題予以總結(jié)分析,并給出了解決方法供大家參考,需要的朋友可以參考下
    2016-06-06
  • php排序算法實(shí)例分析

    php排序算法實(shí)例分析

    這篇文章主要介紹了php排序算法,結(jié)合實(shí)例形式分析了php數(shù)據(jù)查詢、排序、數(shù)組去重、遍歷與排序的相關(guān)操作技巧與注意事項(xiàng),需要的朋友可以參考下
    2016-10-10
  • PHP 函數(shù)call_user_func和call_user_func_array用法詳解

    PHP 函數(shù)call_user_func和call_user_func_array用法詳解

    下面來和大家分享一下這個call_user_func_array和call_user_func函數(shù)的用法,另外附贈func_get_args()函數(shù)和func_num_args()函數(shù),嘿嘿!!
    2014-03-03
  • php封裝的表單驗(yàn)證類完整實(shí)例

    php封裝的表單驗(yàn)證類完整實(shí)例

    這篇文章主要介紹了php封裝的表單驗(yàn)證類,結(jié)合完整實(shí)例形式分析了php針對表單元素正則驗(yàn)證與類型判定的相關(guān)操作技巧,對于php程序設(shè)計(jì)的安全性有一定參考借鑒價值,需要的朋友可以參考下
    2016-10-10
  • php 常用類整理

    php 常用類整理

    在實(shí)際開發(fā)過程會經(jīng)常會遇到一些重復(fù)的操作,如果每次都要自己去實(shí)現(xiàn)這無疑加重了自己的工作量,下面對一些可能經(jīng)常用到的類做個整理.
    2009-12-12

最新評論

尉犁县| 天等县| 郸城县| 彭山县| 三河市| 达尔| 资中县| 渭南市| 峨边| 宽甸| 织金县| 金阳县| 汉寿县| 集贤县| 白沙| 东乡族自治县| 苍梧县| 晋江市| 汤原县| 静安区| 南皮县| 那坡县| 突泉县| 安岳县| 荥阳市| 江华| 聊城市| 滦南县| 苍山县| 昌都县| 肥城市| 旬邑县| 福州市| 青川县| 平谷区| 平邑县| 剑川县| 垣曲县| 茌平县| 慈利县| 松潘县|