Как сдалать проверку в PHP скрипте 1 что он запущен из скрипта 2, который находится на томже сайте Т.е. нужно запретить запуск скрипта 1 удаленно и из других скриптов, если они используют хостинг, этого же сервера if ($_SERVER['SERVER_ADDR'] != $_SERVER['REMOTE_ADDR']) предотвращает только удаленный запуск
В первом файле PHP: define('l_include',1); Во втором первыми строками: PHP: if (!defined('l_include')) die;
а что мешает воспользоваться хостингом на томже серваке и написать: PHP: define('l_include',1); в чужом скрипте, а потом вызвать мой скрипт который должен быть запущен локально на моем хостинге?
Если ты никому не расскажешь, что у тебя константа для проверки называется "l_include" - то никто и не догадается, что надо именно ее объявить. А если уже прочли скрипт, например через file_priv в sql-inj - то тут практически никакая проверка не спасет Вот еще мысль: Можно сделать проверку полного пути от корня сервера, чтоб быть уверенным что скрипт Б инклудят из скрипта в твоей папке. Например так: PHP: <? $docRoot = "/www/home/myfolder/public_html"; if($_SERVER["DOCUMENT_ROOT"] != $docRoot) die("You try to include my script from another fucking server"); // ... ?>
pretolock Не позволит нормально настроенный сервер/права на файл. Если злоумышленнику удалось заинклудить/прочитать исходный текст скрипта - ни одна защита не спасет (кроме быть может самописных библиотек-расширений ПХП) -=Static=- На переменные нельзя надеяться. Например: PHP: echo $_SERVER["DOCUMENT_ROOT"].'<hr>'; $_SERVER["DOCUMENT_ROOT"] = 'some trash dir'; echo $_SERVER["DOCUMENT_ROOT"];
а делов то.. PHP: if ( $_SERVER['SERVER_NAME'] == 'localhost' OR $_SERVER['SERVER_ADDR'] == '127.0.0.1') { print 'local run'; } else { print 'remote run'; }
Угу, в своем скрипте перед инклудом твоего скрипта дописываешь $_SERVER['SERVER_NAME'] = ....; $_SERVER['SERVER_ADDR'] = ....; И способ не работает
eLWAux Достаточно неожиданно, но условие будет выполняться всегда ^^ Во всяком случае server_addr Да и вообще - зачем читать хотя бы первый пост до конца?
m0Hze Зачем угадывать? Инклудим файл с генератором, инклудим интересующий файл. Опять таки - если есть возможность читать/инклудить чужой файл - бесполезно это баловство на чистом пхп
я думаю сделать так: - скрипт который должен запустить локальный скрипт генерирует случайное число - записывает его в файл - вызывает локальный скрипт и передает ему в URL'e это случайное число - локальный скрипт сравнивает случайное число из URL'а со случайным числом прочитанным из файла - локальный скрипт удаляет файл со случайным числом как такая схема?
добавлю еще к условию вызова, что скрипт который должен вызывать локальный скрипт запустить сложно, если его просто так вызвать) такчто вызвать вызывающий скрипт чтобы он сгенерировал случайные данные будет проблематично
А еще можно отрезать сервер от интернета и электричества, а потом залить бетоном. Если такая паранойя - купите вдску и будет вам счастье