<?php
define("__run__", true);
... Все остальные действия ...
?>
Защита файлов и папок
В моем проекте есть служебные скрипты в папке include и модули в папке modules. Все это инклудится галвным скриптом. Как защитить папке include и modules, чтобы их нельзя было прочитать просто набрав в броузере имя папки? Т.е. чтобы только основной скрипт имел доступ к этим папкам?
Давать этим скриптам расширение .php
Код:
А во вспомогательных файлах:
Код:
<?php
defined("__run__") or die();
... Текст включаемого файла ...
?>
defined("__run__") or die();
... Текст включаемого файла ...
?>
Тогда главный файл будет устанавливать значение константы (константу нельзя передать через GET или POST запрос), а остальные файлы будут исполнятся только если их включили в основной файл иначе пользователь увидит пустую страницу. Так сделано во многих (если не во всех) крупных CMS (например, Joomla).
Альтернативный вариант: запретить доступ к этим папкам через htaccess. На PHP это не повлияет, а в браузере открыть уже не получится.
Цитата: Cker
В моем проекте есть служебные скрипты в папке include и модули в папке modules. Все это инклудится галвным скриптом. Как защитить папке include и modules, чтобы их нельзя было прочитать просто набрав в броузере имя папки? Т.е. чтобы только основной скрипт имел доступ к этим папкам?
Можно использовать файл .htaccess для защиты файлов.
Пример содержания:
Код:
<Files "config.php">
Order Allow,Deny
Deny from All
</Files>
<Files "functions.php">
Order Allow,Deny
Deny from All
</Files>
Order Allow,Deny
Deny from All
</Files>
<Files "functions.php">
Order Allow,Deny
Deny from All
</Files>
Помещать такой файл в папку с файлами, которые нужно защитить.
В общем, в этом роде.
Если кто-нибудь в браузере наберёт адрес данного файла, браузер выдаст ошибку доступа.
Также, необходимо поместить в папку простой пустой файл index.html, чтобы, при наборе в адресе папки, никто не мог прочитать названия файлов в папке, а видели просто пустую страницу в браузере.
Цитата: KIV
Это ещё не всё. Ведь скрипты выполнятся при открытии в браузере и это может привести к нежелательным последствиям.
Ну если модули и библиотеки выполняются тупо при запросе из браузера, то такому программисту надо выдать 50 плетей по заднице за кривой говнокод.
Эти файлы должны содержать классы и функции, но никак не свободно выполняемый код.
Следовательно лучше всего эту порнография закрыть через .htaccess как и написал Fobos
Цитата: Fobos
Также, необходимо поместить в папку простой пустой файл index.html, чтобы, при наборе в адресе папки, никто не мог прочитать названия файлов в папке, а видели просто пустую страницу в браузере
А вот это,насколько я знаю,необязательно.Можно это через .htaccess сделать,перенаправив,допустим,на свою страницу "Доступ запрещён" или в этом роде
Цитата: @pixo $oft
А вот это,насколько я знаю,необязательно.Можно это через .htaccess сделать,перенаправив,допустим,на свою страницу "Доступ запрещён" или в этом роде
Не спорю. Кому как нравиться. Что 1 строчку в файл написать, что пустой файл создать. Просто я хотел подчеркнуть необходимость скрытия от посторонних глаз имён файлов в папке. ;)