Сервер XAMPP (WAMP) — отключить доступ к файлам вне корневого каталога

Я использую XAMPP на Windows 8.1.

У меня есть это в конфигурации 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

Спасибо!

0

Решение

Попробуйте изменить Настройки open_basedir в вашей конфигурации PHP (просто смотрите Конфигурация времени выполнения для дополнительной информации). Это предотвратит доступ PHP к каталогам за пределами определенных basedir.

—РЕДАКТИРОВАТЬ—

Чтобы быть немного более убедительным. Вы можете установить open_basedir в вашем конфигурационном файле Apache, php.ini или в файле .htaccess.

В 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>
4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]