отключить доступ к включенным файлам - PullRequest
2 голосов
/ 10 октября 2011

У меня небольшой вопрос ..

Я хочу отключить прямой доступ к моим включенным файлам. (пример 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; }

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

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

Ответы [ 3 ]

5 голосов
/ 10 октября 2011

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

В случае, если ваш сервер перенастроен так, что .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; 
}

Может быть лучше дляваш дизайн.Не повторяйся так сильно.

1 голос
/ 25 октября 2012
if (basename($_SERVER['SCRIPT_FILENAME']) == basename(__FILE__))
{
    //header("Location: index.php");
    exit("NOT ALLOWED");
}
1 голос
/ 11 октября 2011

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

...