Защита от прямого открытия php-файла

yeaahhh

Старатель
Регистрация
8 Май 2008
Сообщения
278
Реакции
11
Друзья, как защитить .php-файл, который инклюдится в index.php, от прямого открытия?
При аякс подгрузке -
PHP:
if ((isset($_SERVER['HTTP_X_REQUESTED_WITH'])) && $_SERVER['HTTP_X_REQUESTED_WITH'] == 'XMLHttpRequest')
{
if (eregi("^$SERVER_ROOT",$HTTP_REFERER)) 
{

}}
А как при инклюде?
Заранее спасибо!
 
как ты себе представляешь вычитку пхп файла? он сразу исполнится и будет выведен результат
 
Общий принцип приблизительно - только в index.php либо подключаемом из него ini-файле определяем константу, а во всех зависимых модулях проверяем ее наличие:
PHP:
#index.php
define('NOHACK', 'nohack');
#module1.php
if (!defined('NOHACK')) { die('Invalid context'); }
if (NOHACK=='nohack')
 {
  #code....
 }
else
 {
  echo "hacking attempt";
 }
примерно так,
+ не забываем о правах, если не дать права на исполнение и неправильно настроить апач - в некоторых случаях можно получить исходники модулей
 
Добавить в файл вызов которого напрямую нужно запретить
PHP:
<?php
if ( basename($_SERVER['SCRIPT_FILENAME']) == 'filename.php' )
  die ('Доступ запрещен!');
?>
 
Назад
Сверху