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
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Доброго времени суток, уважаемые форумчане!
Есть сайт "А" к нему будут обращаться другие сайты. Необходимо чтобы на стороне сайта "А" из достоверного источника определялось, кто к нему обращается и если это кто-то не из белого списка (указанные сайты), то они идут лесом либо попадают на заглушку, в общем доступа они не получают.
Под спойлерами уже неактуально (отдельное спасибо "Мелкому" )
Если я ничего не упустил и нигде не ошибся, вышеприведенный код при обращении к сайту "А" всем кроме 128.73.197.210 и acsmxcfb.client.kubez.biz показывает ya.ru, но вот незадача 128.73.197.210 доступ получает, а acsmxcfb.client.kubez.biz идет лесом в сторону ya.ru
В чем может быть проблема?
Может ли это быть связано с категорией HostnameLookups в httpd.conf у Apache?
Покинул форум
Сообщений всего: 384
Дата рег-ции: Дек. 2013 Откуда: Belarus
Помог: 22 раз(а)
mk.vizet пишет:
о домене того, кто делает запрос.
Так на одном ip может висеть множество доменов
mk.vizet пишет:
а acsmxcfb.client.kubez.biz идет лесом в сторону ya.ru
Грубо говоря, домены нужны для того, чтоб к серверу кто-то подключился не зная/помня его ip адрес. Когда уже сервер к кому-то подключается, "узнать" его можно лишь по ip.
mk.vizet
Отправлено: 18 Марта, 2015 - 00:07:49
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Ts.Saltan пишет:
mk.vizet пишет:
о домене того, кто делает запрос.
Так на одном ip может висеть множество доменов
Именно поэтому задача стоит узнать домен, а не ip
Ts.Saltan пишет:
Когда уже сервер к кому-то подключается, "узнать" его можно лишь по ip
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
А смысл
Никакого труда подделать хост
Ip конечно уже сложнее
Не лучше выдавать доверенным источникам ключи авторизации?
mk.vizet
Отправлено: 18 Марта, 2015 - 08:03:54
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015
Помог: 0 раз(а)
LIME пишет:
А смысл
Никакого труда подделать хост
Ip конечно уже сложнее
Каким образом в данном случае подделывается хост и ip?
LIME пишет:
Не лучше выдавать доверенным источникам ключи авторизации?
Это будет второй этап аутентификации. Если он будет единственным этапом аутентификации, станет возможным в случае хищения этого ключа воспользоваться сайтом "А" или если владелец ключа захочет подключить еще сайты он сможет воспользоваться этим же ключом
LIME
Отправлено: 18 Марта, 2015 - 08:17:30
Активный участник
Покинул форум
Сообщений всего: 10732
Дата рег-ции: Нояб. 2010
Помог: 322 раз(а)
я хз
все очень вариативно
яж не знаю что тебе надо в общем и целом
если можно расположить на том же хостинге то и хост и ip будут совпадать
а если источник захочет завести второй хост под той же учеткой то ничто не помешает
и ip совпадет и хост подделает и ключ совпадет
железных вариантов нет
в очередной раз лучше решать вопрос не технически а концептуально
кому это будет важно будет добросовестен за поддержку
mk.vizet
Отправлено: 18 Марта, 2015 - 09:45:51
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015
Помог: 0 раз(а)
LIME пишет:
все очень вариативно
приведите хотя бы один пример как можно подменить ip чтобы .htaccess принял его за настоящий
LIME пишет:
яж не знаю что тебе надо в общем и целом
здесь написано:
mk.vizet пишет:
Изначально задача стояла следующая:
Есть сайт "А" к нему будут обращаться другие сайты. Необходимо чтобы на стороне сайта "А" определялось, кто к нему обращается и если это кто-то не из белого списка (указанные доменные имена), то они идут лесом либо попадают на заглушку, в общем доступа они не получают.
LIME пишет:
если можно расположить на том же хостинге то и хост и ip будут совпадать
LIME пишет:
и хост подделает
если указать конкретный домен как хост может совпадать или как он его подделает?
Ch_chov
Отправлено: 18 Марта, 2015 - 11:26:35
Постоянный участник
Покинул форум
Сообщений всего: 2121
Дата рег-ции: Июль 2008 Откуда: из города
Помог: 90 раз(а)
mk.vizet пишет:
приведите хотя бы один пример как можно подменить ip чтобы .htaccess принял его за настоящий
Купить аккаунт на том же хостинге что и целевой сайт из белого списка.
mk.vizet
Отправлено: 18 Марта, 2015 - 13:31:08
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Ch_chov пишет:
mk.vizet пишет:
приведите хотя бы один пример как можно подменить ip чтобы .htaccess принял его за настоящий
Купить аккаунт на том же хостинге что и целевой сайт из белого списка.
Это не подмена, ip ведь у него реально такой, как у сайта из белого списка. Это та самая уязвимость из-за которой необходимо идентифицировать по домену а не ip
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
mk.vizet
Отправлено: 18 Марта, 2015 - 15:47:32
Новичок
Покинул форум
Сообщений всего: 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-зоной
тоже не совсем понял, если можно попроще
Мелкий
Отправлено: 18 Марта, 2015 - 16:29:13
Активный участник
Покинул форум
Сообщений всего: 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
mk.vizet
Отправлено: 18 Марта, 2015 - 19:10:43
Новичок
Покинул форум
Сообщений всего: 35
Дата рег-ции: Март 2015
Помог: 0 раз(а)
Мелкий
Честно говоря много из написанного вами, мною не понято
Поэтому хотелось бы получить от вас максимально доступный без терминологии ответ на эти вопросы:
1) в документации ссылки, на которую я давал в предыдущих сообщениях показывается записи типа
Цитата:
Allow from site.ru
почему такие записи в моем примере могут не работать??
2) По поводу методик:
2.1)
Мелкий пишет:
Если ограничения по IP недостаточно, то решение уже озвучено: LIME пишет:
выдавать доверенным источникам ключи авторизации
Данный метод будет вторым этапом аутентификации и первый ни коим образом не может заменить
2.2)
Мелкий пишет:
Либо делать так, чтобы ограничения по IP было достаточно. Переезжать на выделенные IP, в частности.
Такой вариант тоже рассматривался, но он не подошел, т.к. даже если сайт, имеющий доступ к сайту "А" на выделенном ip, его владелец может создать на этом же ip и хостинге еще сайт и воспользовавшись ключом от первого сайта получить доступ к сайту "А", что противоречит поставленной задаче
Мелкий
Отправлено: 18 Марта, 2015 - 19:41:45
Активный участник
Покинул форум
Сообщений всего: 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
mk.vizet
Отправлено: 18 Марта, 2015 - 22:56:19
Новичок
Покинул форум
Сообщений всего: 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
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.