Я использую сервер Apache. Есть ли способ предотвратить доступ пользователей к моим включенным файлам напрямую? Но только разрешить серверу доступ к ним?
Другой способ состоит в том, чтобы включить файлы include вне каталога, из которого обслуживается сайт. Например:
/ includes/somefile.php http/index.php
Таким образом, веб-сайт обслуживается с http /, но включает вне этого каталога, то есть никто не может получить к ним доступ непосредственно из веб-браузера, но ваши сценарии могут включать их следующим образом:
<?php require_once '../includes/somefile.php'; [...]
Поместите их в каталог за пределами корня веб-сайта.
т.е. если index.php
находится в /var/www/domain.com/www
, /var/www/domain.com/www
его в /var/www/domain.com/includes
или что-то еще.
Не помещайте включенные файлы под корнем документа (т.е. вне дерева файлов, которое apache предоставляет пользователю).