XAMPP(WAMP)服务器 - 禁止访问根目录之外的文件

时间:2014-12-14 18:21:23

标签: php apache xampp windows-8.1 document-root

我在Windows 8.1上使用XAMPP。

我在apache配置中发现了这个:

DocumentRoot "C:\Users\David\Dropbox\Programming\PHP"
<Directory "C:\Users\David\Dropbox\Programming\PHP">

虚拟主机:

<VirtualHost *:80>
ServerName http://spedice
DocumentRoot "C:\Users\David\Dropbox\Programming\PHP\Projects_Kuba\Spedice\SczCMS\www"
</VirtualHost>

<VirtualHost *:80>
ServerName http://domaciucetnictvi
DocumentRoot "C:\Users\David\Dropbox\Programming\PHP\Projects_Kuba\DomaciUcetnictvi\www"
</VirtualHost>

但是,如果我尝试访问根目录 - C或访问某些文件夹,如C:\ Program Files等。它通常有效。如何禁止在此文件夹之外:C:\ Users \ David \ Dropbox \ Programming \ PHP?

FXP:

的script.php

<?php
mkdir('../../../../../../folder');
?>

放置于:C:\ Users \ David \ Dropbox \ Programming \ PHP \ Projects_Kuba \ DomaciUcetnictvi \ www

称为:http://domaciucetnictvi/script.php

谢谢!

1 个答案:

答案 0 :(得分:4)

尝试修改PHP配置中的open_basedir settings(有关详细信息,请参阅Runtime Configuration)。这将阻止PHP访问definded basedir(s)之外的目录。

--- --- EDIT

更具决定性。您可以在Apache配置文件,php.ini或.htaccess文件中设置open_basedir。

在php.ini中,您可以通过添加:

来执行此操作
open_basedir = "/path/to/first/folder:/path/to/second/folder"

在.htacces中你可以用:

php_flag open_basedir "/path/to/first/folder"

在Apache配置中尝试:

<Directory /docroot1>
   php_admin_value open_basedir /path/to/first/folder
</Directory>

<Directory /docroot2>
   php_admin_value open_basedir /path/to/second/folder
</Directory>