У меня есть php-файл на www.example.com/somefile.php, который содержит файл в другом каталоге www.example.com/directory/someotherfile.php. Как я могу предотвратить прямой доступ к someotherfile.php?
2 ответа
Использование файлов .htaccess.
Больше информации: http://htaccess-guide.com/
Используя файлы .htaccess, вы можете либо запретить доступ кому-либо, за исключением определенного диапазона IP-адресов (например, для внутренней сети), либо запросить пароль.
Например, требуется пароль, кроме внутреннего диапазона IP:
AuthName "Staff only, please enter password"
AuthType Basic
AuthUserFile /path/outside/of/var/www/.htpasswd
Require valid-user
Order allow,deny
Allow from 192.168.0.
satisfy any
Убедитесь, что ваша версия Apache2 поддерживает файлы .htaccess и проверьте конфигурацию.
Просто поместите файл за пределы размещенного пространства, чтобы www.example.com/somefile.php (например, /home/usr/public_html/somefile.php) включал, например, /home/usr/include/someotherfile.php. Если это невозможно, возможна вариация вышеупомянутого решения .htaccess, когда вы помещаете включаемые файлы в каталог, к которому никто не может получить доступ. Ваш php-файл все равно сможет включить его. Вам не нужно устанавливать пароли, просто заблокируйте все запросы к каталогу.