отключить доступ к включенным файлам

У меня есть вопрос.

Я хочу отключить прямой доступ к моим включенным файлам. (пример header.tpl.php, footer.tpl.php, confic.inc.php, db-connect.inc.php).

но сначала позвольте мне объяснить, что я хочу, я хочу, чтобы все разрешили доступ к моим включенным файлам (index.php) и отключили файлы с заголовком 404 для прямого доступа.

теперь я нашел некоторый классный фрагмент php и изменил его (включая заголовок 404 и 404)

в моем index.php этот код:

define('MY_APP',true); 

в моем файле шаблонов находится этот код:

 if(!defined('MY_APP')) { header('HTTP/1.1 404 Not Found'); include('./../error/404.php'); die; } в if(!defined('MY_APP')) { header('HTTP/1.1 404 Not Found'); include('./../error/404.php'); die; } 

вы видите какие-либо проблемы безопасности или другие проблемы с этим кодом?

наилучшие пожелания bernte

Solutions Collecting From Web of "отключить доступ к включенным файлам"

вы видите какие-либо проблемы безопасности или другие проблемы с этим кодом?

Если ваш сервер повторно настроен так, чтобы .php больше не выполнялся, их исходный код будет доступен для просмотра.

Но рядом с этим ваш подход – довольно распространенный способ сделать это. Однако error/404.php может содержать header('HTTP/1.1 404 Not Found'); , поэтому вам не нужно повторять его для каждого файла. То же самое для die; заявление.

В каждом файле библиотеки / шаблона и т. Д .:

 require('../error/include_file.php'); 

В include_file.php :

 if(!defined('MY_APP')) { header('HTTP/1.1 404 Not Found'); include('404.php'); die; } в if(!defined('MY_APP')) { header('HTTP/1.1 404 Not Found'); include('404.php'); die; } 

Возможно, лучше для вашего дизайна. Не повторяйтесь так много.

Почему бы просто не перетащить его выше папки public_html или того, что вы используете в качестве папки html по умолчанию и включить с помощью ../../. Тогда он будет доступен для скриптов, но публика получит файл 404 / default по умолчанию, который не найден. Я делаю это с конфигурационными файлами, в которых хранятся пароли, и поэтому никто не может публиковать их.

 if (basename($_SERVER['SCRIPT_FILENAME']) == basename(__FILE__)) { //header("Location: index.php"); exit("NOT ALLOWED"); }