Forum Webscript.Ru
Программирование => PHP => Тема начата: Daiz13 от 28 Мая 2002, 00:03:15
-
Можно ли как-нибудь сделать файлы доступными только для include и запретить их запуск через адресную строку браузера?
Есть возможность как-то определить был ли скрипт запущен или его проинклудили?
-
в папку со скриптами, которые include-ятся вставляешь .htaccess с содержанием:
deny from all
Или можно выложить эти файлы в папку, недоступную по www
-
Можно также вставить в подключаемый файл проверку переменной $REQUEST_URI с именем файла, в который подключается, т.е.
if (basename($REQUEST_URI) != "main.php") exit;
-
Daiz13
Можно сделать специальное расширение для инклюдов
или сделать их исполняемыми
-
в основном скрипте определяется константа, а в include файлах происходит проверка на ее наличие.
-
Dm
в основном скрипте определяется константа, а в include файлах происходит проверка на ее наличие.
Так ему не нужен здесь основной скрипт. Ему ведь нужно проверить не то, что файл был подключен в данном скрипте, а то, что файл должен быть подключен извне.
-
GotZfild
А это разве не проверка???
-
А если эту переменную в адресной строке задать? Что тогда с этой проверкой?
-
А если эту переменную в адресной строке задать? Что тогда с этой проверкой?
не переменная, а константа.
определяется константа
В основном файле:
define(\'kill_hackers\', true);
В файле который инклудится
if ( !defined(\'kill_hackers\') )
{
die("Hacking attempt");
}
[PHP]
-
А это разве не проверка???
Это проверка, но не на то, что надо. Что если файл вызвать, набрав URL в адресной строке броузера? Каким образом в этом случае задействуется главный файл, в котором стоит эта проверка?
-
GotZfild
иклюде проверяет не переменная не инитиализирована и завершает своб работу