Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP на примерах (2 издание). Авторы: Кузнецов М.В., Симдянов И.В. Социальная инженерия и социальные хакеры. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Хитрый запрет через .htaccess на доступ к файлу через URL
 
 автор: iramax   (21.05.2009 в 09:57)   письмо автору
 
 

На многих сайтах применяется один и тот же скрипт. Чтобы его не тиражировать по числу сайтов, а заодно иметь возможность оперативно вносить в него доработки, я вывел его в файл с расширением TXT, положил на один сайт, а со всех остальных сайтов сделал вызов - eval(file_get_contents('путь_до_скрипта')).
Все отлично работает, а вопрос вот в чем - как сделать так, чтобы этот файл нельзя было прочитать, просто набрав его URL?
Менял права на файл, не вышло. Крутился с .htaccess, тоже никак - если я добиваюсь, что файл нельзя прочитать, набрав его URL, то его не могут прочитать и все мои сайты.

  Ответить  
 
 автор: Loki   (21.05.2009 в 10:27)   письмо автору
 
   для: iramax   (21.05.2009 в 09:57)
 

Передавать в него логин и пароль

  Ответить  
 
 автор: iramax   (21.05.2009 в 11:03)   письмо автору
 
   для: Loki   (21.05.2009 в 10:27)
 

Т.е. через GET? Файл же текстовый, проверку логина и пароля не сделать...

  Ответить  
 
 автор: Loki   (21.05.2009 в 12:18)   письмо автору
 
   для: iramax   (21.05.2009 в 11:03)
 


<? if ($_GET['pass']!='secretcode') exit; ?>
Я же обычный текстовый файл

  Ответить  
 
 автор: iramax   (21.05.2009 в 13:58)   письмо автору
 
   для: Loki   (21.05.2009 в 12:18)
 

Тогда файл со скриптом нужно делать не текстовым, а .php, либо в .htaccess прописывать, что txt-файлы могут исполнять php-скрипты. Так действительно можно защититься, но не полностью, ведь те, кто имеет доступ к файлам других сайтов, смогут узнать пароль.

  Ответить  
 
 автор: Loki   (21.05.2009 в 16:57)   письмо автору
 
   для: iramax   (21.05.2009 в 13:58)
 

ip тогда проверяйте, шифруйте данные...
если на сторонних сайтах кто угодно имеет доступ к коду, то неважно как защищать - все равно это будет обходиться.

  Ответить  
 
 автор: yuk   (21.05.2009 в 17:53)   письмо автору
 
   для: iramax   (21.05.2009 в 13:58)
 

Можно поступить следующим образом:
Подключаемый скрипт сохраняете в .php и подключаете его по include.

В самом же подключаемом скрипте делаете проверку на $_SERVER['SCRIPT_NAME'], или лучше даже на $_SERVER['SCRIPT_FILENAME']
Естественно, при подключении будет выводиться имя файла, к которому скрипт подключен.

Если эти переменные соответствуют реальному имени файла - выводите ошибку.

PS. упустил из виду, что сайты-то разные...

  Ответить  
 
 автор: yuk   (21.05.2009 в 19:26)   письмо автору
 
   для: yuk   (21.05.2009 в 17:53)
 

Хотя, если они на одном хосте, то может сработать.

  Ответить  
 
 автор: iramax   (21.05.2009 в 21:00)   письмо автору
 
   для: iramax   (21.05.2009 в 09:57)
 

Я файл со скриптом загнал в TXT, чтобы он полностью исполнялся на стороне сайта, который его вызывает, включая доступ к глобальным переменным. Т.е. если этому файлу задать расширение PHP и включить его инклудом, то все переменные из $_SERVER он будет выдавать с того сайта, откуда его взяли.
А htaccessом никак нельзя?

  Ответить  
 
 автор: Киналь   (21.05.2009 в 22:16)   письмо автору
 
   для: iramax   (21.05.2009 в 21:00)
 

>А htaccessом никак нельзя?

Можно. Разрешите доступ только с определённых IP, то есть только вашим сайтам. Директиву не пишу, на память боюсь наврать, но их описание есть на softtim'е.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования