Блокировка доступа для данного географического местоположения - PullRequest
3 голосов
/ 08 апреля 2009

Какой самый надежный способ запретить пользователям из географического местоположения доступ к веб-приложению?

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

Очевидно, что наивные методы, подобные описанному, чрезвычайно легко обойти, особенно при использовании прокси или VPN.

Итак, вопрос: есть ли 100% надежный способ определения географического местоположения веб-пользователя? Если нет, каковы доступные варианты и каковы плюсы и минусы каждого из них?

Ответы [ 7 ]

6 голосов
/ 08 апреля 2009

Короткий ответ - нет. Невозможно на 100% заблокировать людей из определенного географического местоположения, потому что вы не можете гарантировать местоположение пользователя, который надежно использует IP-адрес. Даже если бы вы могли, это может быть подделано через перенаправления.

Существуют способы сделать доступ к сайту для людей в регионе более сложным, но чем более ограничительным вы получаете эти подходы, тем более легитимными пользователями вы, вероятно, будете блокироваться. Например, отключение сервера даст вам 100% гарантию того, что никто из Китая не сможет его использовать, но также даст вам 100% гарантию того, что никто в США тоже не сможет.

4 голосов
/ 08 апреля 2009

Ничто в TCP / IP не содержит данных о местоположении (кроме того, что вы можете определить из таблиц маршрутизации или поиска в базе данных), и ничто не указывает, действует ли машина «от имени» кого-либо в другом месте.

Итак, как вы говорите, прокси и VPN, переадресация портов SSH, TOR и т. Д. Могут полностью помешать вашему веб-приложению узнать физическое местонахождение человека, который использует ваш сайт. Все, что вы можете посмотреть, это IP-адрес этого последнего прыжка, который является TCP / IP-соединением и HTTP-запрос, который вы на самом деле видите.

3 голосов
/ 08 апреля 2009

Приведенные выше методы не будут работать, если кто-то пытается скрыть свое местоположение от вас, перенаправляя через реле в других странах.

1 голос
/ 09 июня 2015

Я обнаружил, что этот скрипт - простой способ реализовать это:

https://www.blocked.com/

Блокировка страны включена в бесплатную версию, как и блокировка открытых прокси-серверов, сетей анонимности и т. Д.

0 голосов
/ 09 апреля 2009

Нет, нет надежного способа сделать это.

В рабочей группе IETF проводится много связанной работы в рабочей группе GeoPriv , в которой разрабатываются протоколы (например, HELD ), позволяющие объектам запрашивать сеть в своем собственном местоположении. и также позволяют другим авторизованным субъектам запрашивать эту информацию.

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

0 голосов
/ 08 апреля 2009

first - выясните, какие ip-группы назначены региону, затем вы можете проверять каждый запрос на ip-адрес пользователя. Если он соответствует части региона, который вы хотите заблокировать, отправьте его на disney.com.

Посмотрите, поможет ли это вам: Информация об IP-адресе

0 голосов
/ 08 апреля 2009

Где-то на трубках есть база данных с именем Страна IP 2 , которая может определить, откуда исходит IP.

Это, конечно, не идеально, но оно может дать вам страну, откуда исходит IP.

Существует также метод SSN, который связан с IP-адресами. Я не знаю, как это работает, и кажется довольно сложным. Он обычно используется в рекламе для отправки вам локализованного спама. Например, если вы живете в Монреале, Канада, в объявлении будет отображаться «Найти синглов из Монреаля!». Интернет-провайдер, стоящий за человеком, должен поддерживать эту услугу.

...