Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Ограничение доступа к сайту по хосту по средствам .htaccess

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: Ограничение доступа к сайту по хосту по средствам .htaccess
mk.vizet
Отправлено: 17 Марта, 2015 - 22:02:45
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Доброго времени суток, уважаемые форумчане! Подмигивание

Есть сайт "А" к нему будут обращаться другие сайты. Необходимо чтобы на стороне сайта "А" из достоверного источника определялось, кто к нему обращается и если это кто-то не из белого списка (указанные сайты), то они идут лесом либо попадают на заглушку, в общем доступа они не получают. Закатив глазки

Под спойлерами уже неактуально (отдельное спасибо "Мелкому" Подмигивание )
Спойлер (Отобразить)

Спойлер (Отобразить)

(Отредактировано автором: 19 Марта, 2015 - 20:09:34)

 
 Top
Ts.Saltan
Отправлено: 17 Марта, 2015 - 22:55:15
Post Id



Посетитель


Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013  
Откуда: Belarus


Помог: 22 раз(а)




mk.vizet пишет:
о домене того, кто делает запрос.

Так на одном ip может висеть множество доменов

mk.vizet пишет:
а acsmxcfb.client.kubez.biz идет лесом в сторону ya.ru

Грубо говоря, домены нужны для того, чтоб к серверу кто-то подключился не зная/помня его ip адрес. Когда уже сервер к кому-то подключается, "узнать" его можно лишь по ip.
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 00:07:49
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Ts.Saltan пишет:
mk.vizet пишет:
о домене того, кто делает запрос.

Так на одном ip может висеть множество доменов


Именно поэтому задача стоит узнать домен, а не ip

Ts.Saltan пишет:
Когда уже сервер к кому-то подключается, "узнать" его можно лишь по ip


Т.е. если я вас правильно понимаю авторы нижеприведенного ресурса "высосали из пальца" информацию, которая размещена на этих страницах по нижеприведенным ссылкам?
http://httpd[dot]apache[dot]org/docs/2[dot]2[dot][dot][dot]_authz_host[dot]html
http://publib[dot]boulder[dot]ibm[dot]com/ht[dot][dot][dot]/mod_access[dot]html
 
 Top
LIME
Отправлено: 18 Марта, 2015 - 06:38:18
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




А смысл
Никакого труда подделать хост
Ip конечно уже сложнее
Не лучше выдавать доверенным источникам ключи авторизации?
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 08:03:54
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




LIME пишет:
А смысл
Никакого труда подделать хост
Ip конечно уже сложнее


Каким образом в данном случае подделывается хост и ip?

LIME пишет:
Не лучше выдавать доверенным источникам ключи авторизации?


Это будет второй этап аутентификации. Если он будет единственным этапом аутентификации, станет возможным в случае хищения этого ключа воспользоваться сайтом "А" или если владелец ключа захочет подключить еще сайты он сможет воспользоваться этим же ключом
 
 Top
LIME
Отправлено: 18 Марта, 2015 - 08:17:30
Post Id


Активный участник


Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010  


Помог: 322 раз(а)




я хз
все очень вариативно
яж не знаю что тебе надо в общем и целом
если можно расположить на том же хостинге то и хост и ip будут совпадать
а если источник захочет завести второй хост под той же учеткой то ничто не помешает
и ip совпадет и хост подделает и ключ совпадет
железных вариантов нет
в очередной раз лучше решать вопрос не технически а концептуально
кому это будет важно будет добросовестен за поддержку
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 09:45:51
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




LIME пишет:
все очень вариативно


приведите хотя бы один пример как можно подменить ip чтобы .htaccess принял его за настоящий

LIME пишет:
яж не знаю что тебе надо в общем и целом

здесь написано:
mk.vizet пишет:
Изначально задача стояла следующая:
Есть сайт "А" к нему будут обращаться другие сайты. Необходимо чтобы на стороне сайта "А" определялось, кто к нему обращается и если это кто-то не из белого списка (указанные доменные имена), то они идут лесом либо попадают на заглушку, в общем доступа они не получают.


LIME пишет:
если можно расположить на том же хостинге то и хост и ip будут совпадать

LIME пишет:
и хост подделает

если указать конкретный домен как хост может совпадать или как он его подделает?
 
 Top
Ch_chov
Отправлено: 18 Марта, 2015 - 11:26:35
Post Id



Постоянный участник


Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008  
Откуда: из города


Помог: 90 раз(а)




mk.vizet пишет:
приведите хотя бы один пример как можно подменить ip чтобы .htaccess принял его за настоящий
Купить аккаунт на том же хостинге что и целевой сайт из белого списка.
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 13:31:08
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Ch_chov пишет:
mk.vizet пишет:
приведите хотя бы один пример как можно подменить ip чтобы .htaccess принял его за настоящий


Купить аккаунт на том же хостинге что и целевой сайт из белого списка.


Это не подмена, ip ведь у него реально такой, как у сайта из белого списка. Это та самая уязвимость из-за которой необходимо идентифицировать по домену а не ip

(Отредактировано автором: 18 Марта, 2015 - 13:32:07)

 
 Top
Мелкий Супермодератор
Отправлено: 18 Марта, 2015 - 14:24:52
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




http://httpd[dot]apache[dot]org/docs/2[dot]2[dot][dot][dot]_authz_host[dot]html
Цитата:
This configuration will cause Apache to perform a double reverse DNS lookup on the client IP address, regardless of the setting of the HostnameLookups directive. It will do a reverse DNS lookup on the IP address to find the associated hostname, and then do a forward lookup on the hostname to assure that it matches the original IP address. Only if the forward and reverse DNS are consistent and the hostname matches will access be allowed.

Шаред-хостинг не пройдёт проверку в принципе. Попробуйте сделать reverse dns запрос к IP, на котором ваш сайт работает. Что получилось?

mk.vizet пишет:
Это та самая уязвимость из-за которой необходимо идентифицировать по домену а не ip

Суть: у апача есть входящий HTTP-запрос. В этом запросе есть только необязательный заголовок Host для доменного имени, к которому обращается запрос. Об отправителе запроса HTTP не знает вообще ничего.
Спускаемся ниже: на уровне TCP мы узнаем IP и порт машины, которая передала нам этот запрос. Номер порта - динамика, ничего не даёт. IP знаем - вот по нему allow-deny и делается.
А доменов здесь нет.

Если же вам дали рулить обратной DNS-зоной, то на этом IP только вы и работаете.


-----
PostgreSQL DBA
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 15:47:32
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Мелкий пишет:
Шаред-хостинг не пройдёт проверку в принципе. Попробуйте сделать reverse dns запрос к IP, на котором ваш сайт работает.


Если можно поподробнее и с примерами, честно говоря не понял Растерялся
Мелкий пишет:
Суть: у апача есть входящий HTTP-запрос. В этом запросе есть только необязательный заголовок Host для доменного имени, к которому обращается запрос. Об отправителе запроса HTTP не знает вообще ничего.

Его возможно подменить? Если да то как?

Мелкий пишет:
IP знаем - вот по нему allow-deny и делается.
А доменов здесь нет.

О чем речь тогда в этой документации?
http://forum.php.su/rd.php?http://httpd[dot]apache[dot]org/docs/2[dot]2/mod/mod_authz_host[dot]html
http://forum.php.su/rd.php?http://publib[dot]boulder[dot]ibm[dot]com/httpserv/manual60/mod/mod_access[dot]html

Мелкий пишет:
Если же вам дали рулить обратной DNS-зоной

тоже не совсем понял, если можно попроще Растерялся
 
 Top
Мелкий Супермодератор
Отправлено: 18 Марта, 2015 - 16:29:13
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




mk.vizet пишет:
Его возможно подменить?

Вопрос некорректен. Заголовок заполняется на клиенте и может содержать всё что угодно по определению.
И во-вторых, для шареда этот заголовок менять бесполезно, вам frontend скажет "я не знаю такого домена" и всё. Т.к. именно из-за заголовка Host и стали вообще возможны шареды - этот заголовок позволил работать многим сайтам на одном IP-адресе.

mk.vizet пишет:
О чем речь тогда в этой документации?

Если вы не заметили, первую ссылку я и цитировал. Вторая - это старая копия первой. И там тоже речь о том, что проверка осуществляется через обратную зону.

Есть DNS - он отвечает на вопрос "какой IP обслуживает такой-то домен". А есть особый запрос к DNS, называемый reverse DNS - он отвечает на вопрос "какое доменное имя соответствует этому IP". Надо понимать, что эти два запроса не имеют между собой ничего общего.
Технически rdns имён может быть на одном ip много, но имеется пачка проблем и такое не используется. Сейчас у одного IP или нет доменного имени или только одно. Разумеется, для шареда это будет не ваше доменное имя, а то, которое нужно хостеру.

Если ограничения по IP недостаточно, то решение уже озвучено:
LIME пишет:
выдавать доверенным источникам ключи авторизации

Либо делать так, чтобы ограничения по IP было достаточно. Переезжать на выделенные IP, в частности.


-----
PostgreSQL DBA
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 19:10:43
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Мелкий

Честно говоря много из написанного вами, мною не понято

Поэтому хотелось бы получить от вас максимально доступный без терминологии ответ на эти вопросы:

1) в документации ссылки, на которую я давал в предыдущих сообщениях показывается записи типа
Цитата:
Allow from site.ru

почему такие записи в моем примере могут не работать??

2) По поводу методик:

2.1)
Мелкий пишет:
Если ограничения по IP недостаточно, то решение уже озвучено:
LIME пишет:
выдавать доверенным источникам ключи авторизации

Данный метод будет вторым этапом аутентификации и первый ни коим образом не может заменить

2.2)
Мелкий пишет:
Либо делать так, чтобы ограничения по IP было достаточно. Переезжать на выделенные IP, в частности.

Такой вариант тоже рассматривался, но он не подошел, т.к. даже если сайт, имеющий доступ к сайту "А" на выделенном ip, его владелец может создать на этом же ip и хостинге еще сайт и воспользовавшись ключом от первого сайта получить доступ к сайту "А", что противоречит поставленной задаче
 
 Top
Мелкий Супермодератор
Отправлено: 18 Марта, 2015 - 19:41:45
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




mk.vizet пишет:
почему такие записи в моем примере могут не работать??

Цитата:
Only if the forward and reverse DNS are consistent and the hostname matches will access be allowed.

У меня нет желания перепечатывать гугл. reverse dns - это reverse dns.

Если вы предполагаете намеренную или случайную компрометацию ключа доступа и использование того же IP-адреса, то задача идентификации технического решения не имеет.


-----
PostgreSQL DBA
 
 Top
mk.vizet
Отправлено: 18 Марта, 2015 - 22:56:19
Post Id


Новичок


Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015  


Помог: 0 раз(а)




Мелкий пишет:
У меня нет желания перепечатывать гугл. reverse dns - это reverse dns.


Если я правильно понял reverse DNS это возможность по ip адресу определить домен, к которому он привязан т.е. в следующем примере dedi33.your-server.de привязан к 213.133.106.33, а 213.133.106.33 ссылается на dedi33.your-server.de, в то время как forum.hetzner.de является дочерним для dedi33.your-server.de и не является reverse DNS для 213.133.106.33?
forum.hetzner.de --> 213.133.106.33
213.133.106.33 --> dedi33.your-server.de
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Программирование на PHP »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB