Как лучше защитить включаемый файл от открытия извне?

Статус
В этой теме нельзя размещать новые ответы.

Эдди

Новичок
Как лучше защитить включаемый файл от открытия извне?

Понимаю, что куча способов может быть не дать открыть включаемый файл напрямую, скажем, test.inc.php.

Использовал раньше нечно подобное:
if(substr(basename($_SERVER['REQUEST_URI']),-7,7)=='inc.php') Header('Location:/');

Вплоть до такого:
if(substr(getenv('HTTP_REFERER'),-35,35)!='urlоткудавызванфайлдлиной35символов') Header('Location:/');

Но чую одним место, что профанация все это, хотя и опыта маловато...
 

dimagolov

Новичок
в главном файле определяй константу, а во включаемых проверяй определена она или нет.
 

Эдди

Новичок
Автор оригинала: dimagolov
в главном файле определяй константу, а во включаемых проверяй определена она или нет.
Во блн. Не дошел до такого простого решения...
Наверное еще куча есть, но чем проще, тем лучше. Мерси

-~{}~ 13.09.09 22:12:

Вопрос вдогонку:

А если речь идет о файле, не включаемом.
К примеру, который обрабатывает данные из формы и возвращает по Header к исходному файлу.
Ну если не делать самоперенаправление, а использовать независимый файл для обработки формы...
Там константа не будет работать.
 

grigori

( ͡° ͜ʖ ͡°)
Команда форума
ты хоть сам понимаешь, что конкретно имеешь ввиду?
 

Фанат

oncle terrible
Команда форума
что такого ужасного случится, если кто-то "откроет включаемый файл"?
 

Эдди

Новичок
Автор оригинала: *****
что такого ужасного случится, если кто-то "откроет включаемый файл"?
Ужасного ничего, но кривую страницу с url-ом твоего сайта не очень хочется, чтобы люди видели.
Тогда надо было бы в нем показывать нечто вроде: Ошибка, вы вошли и прочее, что гораздо муторнее,
чем в начале такого файла определить перенаправление на нормальную страницу, на главную может...
Но по-любому надо же определить, что вошли напрямую в файл...
 

Фанат

oncle terrible
Команда форума
откуда люди увидят твою кривую страницу, если они ниоткуда на нее попасть не могут?
 

Эдди

Новичок
Автор оригинала: *****
откуда люби увидят твою кривую страницу, если они ниоткуда на нее попасть не могут?
Перестраховываюсь?..
Попасть могут по адресу. Ну теоретически, конечно.
Хотелось бы вообще об этом забыть, поставив пару строк в начале таких файлов.
Плюс, я не знаю, как роботы к таким файлам подходят.
 

Dreammaker

***=Ф=***
Эдди
если есть такие страшные опасения, что кто-то что-то увидит в "невидимой" странице и человеку от этого станет плохо, то показывай что либо на ней только по POST

IF ($_POST) {

/*выводим форму и обработку*/

}
 

SiMM

Новичок
> я не знаю, как роботы к таким файлам подходят.
Откуда им вообще о них может быть известно?
 

findnext

Новичок
Эдди
роботы ходят также как и все другие пользователи, т.е. по ссылкам.
Я, например, использую mod_rewrite для перенаправления запросов к одному только фаилу где происходит разбор url
 

Dreammaker

***=Ф=***
>Откуда им вообще о них может быть известно?
Читал о гугловском проекте по индексации страниц, которые за формами. Как полноценная реализация - это задел на будущее. Но вроде и сейчас они какие-то простейшие формы индексируют, но за истинность этой информации не могу ответить - пути гугловские неисповедимы :)
 

Эдди

Новичок
Спасибо большое всем!

Включаемые файлы по константе буду блокировать.
Обработчики форм по проверке if post 'submit' по имени 'submit' кнопки input type=submit.

:)
 

varan

Б̈́̈̽ͮͣ̈Л̩̲̮̻̤̹͓ДͦЖ̯̙̭̥̑͆А͇̠̱͓͇̾ͨД͙͈̰̳͈͛ͅ
подключаемые файлы можно хранить вне папки www (или htdocs или что там у тебя)
 

Эдди

Новичок
Автор оригинала: varan
подключаемые файлы можно хранить вне папки www (или htdocs или что там у тебя)
А вот это очень муторно. Усложнит работу на 150%, когда у меня каждая страница из 3-5 включений состоит.
Плюс включения имеют расширение php, поэтому не особо важно это, где хранить.
 

Adelf

Administrator
Команда форума
set_include_path спасет тебя, Эдди.
Необязательно в этом случае. Но в будущем - обязательно.
 
Статус
В этой теме нельзя размещать новые ответы.
Сверху