Защита include-модулей от несанкционированного доступа на сайте |
||||
---|---|---|---|---|
Когда Вы пишите простенькую гостевую книгу, или счетчик, прибавляющий 1, к предыдущему значению, Вы, как правило, используете один-два файла не связанные друг с другом. Но однажды возникает необходимость разделять программу на несколько частей, причем одна часть вызывается другой. Пример: Делается форум-сервер, вроде www.xpoint.ru. Если Вы заметили, там скрипту forum.cgi присваивается очень много действий: от просмотра сообщений, до отправки личных сообщений. В таких ситуациях используются различные скрипты, каждый из которых отвечает за свое действие. А главный скрипт, в зависимости от действия вызывает тот или иной модуль при помощи конструкции include (или recure). Но такие файлы не должны вызываться самостоятельно, а только из главного скрипта. Вот здесь мы и покажем три основных способа защиты их от запуска. Каталог выше корня сайта Использование константы define("index", "yes"); if(!defined("index")) die("Вы не имеете права на работу с этим
файлом"); Как это работает? Функция define создает константу index. Далее выражение if при помощи другой функции defined проверяет наличие предопределенной константы, и в случае если константа неопределенна, выводит сообщение об ошибке и прерывает выполнение скрипта. Использование .htaccess <files ~ "*.*"> Все. Ни кто с наружи эти файлы запустить не сможет. Можете написать примерно такую строчку: <files ~ "^\_"> И называть все файлы-модули начиная с _ (_emter.php; _admin.php и т.п.). Вообще с .htaccess можно сделать очень многое, и здесь я рекомендую
обратиться к литературе по apache. |