Актуальной задачей для веб-ресурса в нынешних реалиях является установка ограничений доступа по регионам, либо географическая привязка выдаваемой информации с учетом региона. Одним из решений, которые можно использовать для этих целей, является база данных и американский сервис MaxMind GeoIP2. Сервис привлекает огромным объемом и детальностью информации, но имеет свои особенности. Так, Крым, ДНР, ЛНР, Запорожская и Херсонская области а также Севастополь указаны в базе как регионы Украины. Соответственно, если, скажем, разрешить доступ к ресурсу только с территории РФ, то эти регионы останутся не у дел.

Так я, первоначально настроив свой ресурс только на доступ с территории РФ, обнаружил, что мои друзья из Крыма и ДНР не могут получить доступ (получают специальную версию страницы, с ограниченным объемом информации). Проблема эта легко решается, и в этой статье я покажу, как именно можно простым спососбом ее решить, а также покажу действующий пример конфигурации сервера.

Мой пример основан на nginx и модуле ngx_http_geoip2_module, предназначенном для работы с базой MaxMind, под Ubuntu 20.04. Следует учесть, что в настоящее время актуальной является версия GeoIP2, имеющая новый формат БД. Пример приводится на основе бесплатной версии базы GeoLite2. Она содержит три таблицы. Первая, с данными IP, содержащими только информацию о стране (GeoLite2-Country), вторая - только о провайдере (GeoLite2-ASN), и третья содержит подробные данные по каждой местности (GeoLite2-City). Для фильтрации отдельных регионов нам нужна именно третья таблица.

Для получения базы GeoLite2 требуется учетная запись MaxMind. Ее можно завести тут: https://www.maxmind.com/en/geolite2/signup

Если из-за санкций не удается официально зарегистрироваться и получить базу, то это спокойно можно сделать из альтернативных источников. Главное, загрузить на сервер любым способом свежую версию файла GeoLite2-City.mmdb, и поместить его (для Ubuntu) в папку "/usr/share/GeoIP/".

Если зарегистрироваться удалось (например, имея двойное гражданство с другой страной, против которой санкции не введены????), тогда для загрузки и обновления базы есть удобная утилита от самого сервиса.

Подключаем репозиторий:

$ sudo add-apt-repository ppa:maxmind/ppa

Устанавливаем утилиту:

$ sudo apt update 
$ sudo apt install geoipupdate

Конфигурация утилиты осуществляется в файле /etc/GeoIP.conf
Здесь нужно указать AccountID - берется из данных вашего аккаунта,
LicenseKey - нужно получить на сайте, в вашем кабинете.

EditionIDs - какие таблицы нужно загрузить. В нашем случае:

EditionIDs GeoLite2-City

Дальше переходим к настройке nginx / ngx_http_geoip2_module. Самым простым вариантом является установка из штатного репозитория Ubuntu бинарной версии пакетов:

$ sudo apt-get install nginx-full

Сюда входит как сам сервер nginx, так и модуль ngx_http_geoip2_module.
Обращу внимание, что нужен именно модуль geoip2. Модуль первой версии не сможет считать таблицу в новом формате.

Далее настраиваем nginx. Для работы модуля нужно добавить следующие строки в файл /etc/nginx/nginx.conf:

load_module modules/ngx_http_geoip2_module.so;

В первой версии модуля для загрузки таблиц использовались параметры geoip_country и geoip_city. Для второй версии они не актуальны.

Настройка модуля второй версии проводится в секции http, и выглядит следующим образом:

geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
  [параметры]    
  [...] 
}

Параметры позволяют вам, помимо настройки модуля, определить глобальные переменные nginx, которые будут содержать нужные вам данные из базы по геолокации текущего запроса. Какие именно данные присваиваются переменной, определяется указанием соответствующих полей таблицы, имеющей древовидную структуру. Структура описана на сайте MaxMind.

Для нашей задачи подойдет такая конфигурация:

geoip2 /usr/share/GeoIP/GeoLite2-City.mmdb {
  auto_reload 60m;
  $geoip2_metadata_city_build metadata build_epoch;
  $geoip2_data_country_name country names en;
  $geoip2_data_country_code country iso_code;
  $geoip2_data_city_name city names en;
  $geoip2_data_region_name subdivisions 0 names en;
  $geoip2_data_state_code  subdivisions 0 iso_code;
}

Параметр auto_reload определяет, насколько часто модуль будет считывать заново данные из файла таблицы. А файл таблицы, в свою очередь, должен обновляться через crontab. Таким образом можно поддерживать актуальность данных.

$geoip2_metadata_city_build - временная метка сборки базы
$geoip2_data_country_name - название страны на английском
$geoip2_data_country_code - двухбуквенный код страны
$geoip2_data_city_name - имя города на английском
$geoip2_data_region_name - имя региона (Крым, Севастополь, Московская область и т. д.)
$geoip2_data_state_code - код региона. Это именно то, что нам надо для фильтрации. Бывают двухбуквенные коды, трехбуквенные, цифровые коды. И даже однобуквенные. Иногда этот параметр вовсе отсутствует в базе.

Стоит отметить, что доступны данные и на русском языке. Полную структуру данных таблицы можно узнать в документации MaxMind, доступной на их сайте.

Получать имеет смысл только те данные, которые вам действительно нужны для настройки проекта. Нам нужны в первую очередь два параметра:

$geoip2_data_country_code - двухбуквенный код страны
$geoip2_data_state_code - код региона

Для простоты решения задачи мы можем тут же, в секции http файла конфигурации nginx, отфильтровать нужные нам регионы и создать логическую переменную, которую можно использовать для дальнейшего ограничения доступа. Например вот так:

map "$geoip2_data_country_code:$geoip2_data_state_code" $allowed_reg {
  default no;
  ~^RU: yes; #Россия
  ~^BY: yes; #Белоруссия
  ~^AM: yes; #Армения
  ~^KZ: yes; #Казахстан
  ~^KG: yes; #Кыргызстан
  UA:40 yes; #Севастополь
  UA:43 yes; #Крым
  UA:14 yes; #Донецкая область
  UA:09 yes; #Луганская область
  UA:23 yes; #Запорожская область
  UA:65 yes; #Херсонская область
  GE:AB yes; #Абхазия
}

Теперь переменная $allowed_reg содержит логическое значение, которое можно использовать либо для ограничения доступа на уровне конфигурации сервера, либо для формирования содержимого на уровне SSI.

Здесь использованы две переменные, разделенные двоеточием, в качестве исходного значения MAP. Для определения стран без учета региона используются регулярные выражения. Для определения регионов, имеющих ложную привязку, использованы простые значения, указывающие на конкретный регион по двухбуквенному обозначению страны и коду региона.

Для ограничения доступа на уровне конфигурации можно использовать такую конструкцию:

server {
  #Block forbidden country
  if ($allowed_reg = no) {
    return 444;
  }

Для использования переменной на уровне SSI можно использовать вот такую конструкцию:

<!--# if expr="$allowed_reg = yes" -->
[...]
<!--# else -->
[...]
<!--# endif -->

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

Комментарии (106)


  1. Pas
    00.00.0000 00:00
    +12

    Ох, страшный риск поднимать такую кощунственную тему, как иппользование if в nginx вместо map


    1. sunnybear
      00.00.0000 00:00
      +2

      В данном контексте это выглядит более уместно, чем использование map с именованными локациями для маршрутизации запросов. Хотя map изящнее


    1. Basov2023 Автор
      00.00.0000 00:00
      -2

      Ну, графомания, это не по моей части. Лично у меня нет ни возможности ни желания поддерживать кучу версий сайта. Поэтому предпочитаю использовать SSI внутри сайта. А так, да, конечно, берете MAP и всех делов.


  1. BugM
    00.00.0000 00:00
    +10

    Не стоит мешать интернет, ip адреса и местоположение ваших пользователей. Это три разные штуки.

    Ладно кровавый энтерпрайз. Там юристы, ограничения и прочее. И там есть своя экспертиза как это реализовать. А во всем кто меньше стоит работать для всех.


    1. aamonster
      00.00.0000 00:00
      +3

      Если законы не вынуждают ограничить, но зачем-то надо разный контент для разных стран – надо хотя бы оставить пользователю возможность выбрать страну явно (и запомнить её в куках, чтобы у кук был приоритет перед геолокацией... Пользуясь случаем, передаю привет разработчикам алиэкспресс, которые годами не могли это сделать).


    1. Basov2023 Автор
      00.00.0000 00:00

      Речь идет об ограничении доступа к определенной информации из определенных регионов. Это может быть нужно по многим причинам, в том числе и из соображений собственной безопасности. Конечно, это все обходится. Мы же обходим санкции спокойно. Поэтому, это, скорее, защита от дураков. Но тоже полезно.


  1. FreakII
    00.00.0000 00:00
    +39

    новых регионов Российской Федерации

    Лол


    1. dyadyaSerezha
      00.00.0000 00:00
      +7

      Более того, "границы" меняются каждый день, что особо пикантно.
      А вообще, хотелось бы узнать, зачем вообще ограничивать доступ. Например, Ситибанк в России ограничивает доступ к своему сайту (и к интернет-банкингу) только пределами РФ, и даже не все VPN-сервисы срабатывают. Какого хрена?? Клиент банка поехал на отдых, в командировку и т.д. в другую страну и не может получить доступ к своему счету и провести какие-то операции. Бред полный.


      1. Basov2023 Автор
        00.00.0000 00:00
        -1

        Смысл совершенно конкретный. Например - не нарушать законы той страны, в которой просматривают ваш сайт.


        1. KivApple
          00.00.0000 00:00

          Мне всегда казалось, что главное не нарушать законы страны своего резиденства. У энтерпрайза проблема - дочерние лица, работающие всюду, которым могут прищемить яйца.


          1. Basov2023 Автор
            00.00.0000 00:00
            +1

            Ну разумеется. Но еще важно, чтобы по возможности против вас не заводили дела где-то в других регионах. Ну или даже не обязательно дела. Зачем дразнить собак? Особенно, если информация направлена не на них? Просто определяете для себя аудиторию, а лишнюю отсеиваете.


            1. KivApple
              00.00.0000 00:00

              Интерпол не работает с политическими делами (поэтому, например, Ассанжа пришлось подставлять с якобы изнасилованием), а также не работает в случае если преступление не считается преступлением в стране где вы находитесь. Так что если вы не хотите поехать вот прям щас туристом в Украину, мне сложно представить модель угроз. Вас даже из третьей страны туда не выдадут, мне неизвестно таких прецедентов.


              1. Basov2023 Автор
                00.00.0000 00:00
                +1

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


                1. KivApple
                  00.00.0000 00:00
                  +2

                  С такими соображениями, я бы вообще ничего не постил политического, потому что в России и особенно на её новых территориях есть люди, которые могут не разделять вашу точку зрения и передать информацию надзорным органам Украины.


                  1. Basov2023 Автор
                    00.00.0000 00:00
                    -1

                    Вы знаете, не обязательно политическое. Вот смотрит ваш контент ваш старый знакомый с Украины. А вы тут пишете о ваших профессиональных успехах и достижениях. А он там без света сидит и без работы. Зачем мне его реакция? Но в любом случае каждый решает за себя, что постить.


                    1. KivApple
                      00.00.0000 00:00
                      -1

                      Ну это его ответственность не читать потенциально триггерные материалы. С тем же успехом он может в инсту зайти, а там красивые девушки купаются на Бали в ленте. Некоторым, кстати, наоборот позволяет отвлечься от своих проблем читать про "нормальную жизнь" других людей. Люди разные.


                      1. Basov2023 Автор
                        00.00.0000 00:00
                        -1

                        Разница в том, что он мой давний знакомый. И его злобная зависть имеет персональный оттенок. ????


        1. fk0
          00.00.0000 00:00
          -3

          Ну вот пусть и не просматривают. Они же сами пришли, а не вы к ним.


        1. Enverest
          00.00.0000 00:00

          А какой закон нарушается при просмотре страницы?


          1. Basov2023 Автор
            00.00.0000 00:00

            Публикация может нарушать нормы той территории, на которой ее читают. Например, если вы публикуете материалы, компрометирующие СВО, то в РФ против вас заведут уголовное дело. И наоборот. Если будете поддерживать СВО, то в Евросоюзе или США против вас введут санкции. Или, минимум, заблокируют ваш ресурс. Если вы ограничиваете показ информации исходя из географической привязки, то вероятность санкций против вас сводится к минимуму. По крайней мере, вы не будете раздражать тех, кому ваша информация не адресована.


  1. RifleR
    00.00.0000 00:00

    То есть, это чисто гео-фильтр, без учета IP? Допустим, пользователь находится в городе Херсоне. Там работают только украинские провайдеры, с украинскими IP. Ему будет предоставлен доступ? Не нарушит ли это какие-нибудь политики безопасности (ведь существует причина, по которой доступ извне РФ запрещен)? В то же время, это вроде как конституционная территория РФ и доступ должен быть. Как вы решаете подобные коллизии?


    1. jorikdima
      00.00.0000 00:00
      -3

      Конституционная территория РФ …


    1. Basov2023 Автор
      00.00.0000 00:00
      +1

      Вы знаете, это уже не суть важно. Хотя, при желании, можно было бы и это решить. В основном, контролирующие органы, скажем, Украины, ведут анализ сайтов из Киева. И уж точно не из приграничной зоны.


      1. KivApple
        00.00.0000 00:00
        -1

        Вы живёте в/на Украине, что вас это беспокоит?

        Я вот живу во Франции и меня в первую очередь беспокоит мнение здешних надзорных органов и по остаточному принципу мнение контролирующих органов РФ (вдруг захочу к бабушке в гости заехать однажды, не хотелось бы сюрпризов). А вот мнение надзорных органов Украины мне вообще неинтересно.

        Вы скорее всего живёте в России, так что ваша позиция ещё более странная.


        1. Basov2023 Автор
          00.00.0000 00:00
          +1

          Жил раньше.


          1. KivApple
            00.00.0000 00:00
            -1

            Любить родину лучше издалека?


            1. Basov2023 Автор
              00.00.0000 00:00
              +1

              Жил раньше на Украине. Сейчас живу в России.


      1. RifleR
        00.00.0000 00:00
        -1

        Не совсем понятно, что вы имеете в виду под анализом.
        Я вообще к чему задал вопрос - понятно было бы, если б вы сделали ограничение по провайдеру - разрешать доступ только провайдерам с российским IP. Но разрешать всем на этих территориях - смысл от меня ускользает. То есть, с т.з. безопасности - нельзя давать украинским провайдерам доступ к вашему сайту. Но с т.з. законов, вроде как вы должны разрешать всем? Но что делать, если пользователь находится в Херсоне и хочет зайти к вам на сайт, но он пользуется каким-нибудь Укртелекомом, где IP выдан из киевского пула (обычное явление для общенациональных провайдеров в Украине)? Формально, вы должны предоставить ему доступ, но для этого нужно разрешить в том числе IP для региона "Киев".
        Ответ, как бы вы техническим способом решили проблему, созданную политикой, меня и интересовал.


        1. Basov2023 Автор
          00.00.0000 00:00

          С точки зрения законов я не должен разрешать всем доступ. Это мое дело, кому я разрешаю, а кому нет. Под анализом я имею в виду то, что во многих государствах сейчас есть органы, которые анализируют контент сайтов с точки зрения их содержания. И не просто так, а для того, чтобы принять определенные меры и добавить в определенные списки. Я же применяю превентивную меру против такого анализа. То есть, не распространяю контент где не надо.

          К сожалению, описанную Вами проблему я решить не могу. Как говорится, чем богаты - тем и рады. Если есть такие решения - было бы любопытно узнать. Но по-моему это не реально. Если провайдер выдает IP из пула, неправильно привязанного географически, то тут я уже ничего не могу сделать. Так делал провайдер "Интертелеком". У него все адреса по всей Украине определялись географически как Одесса, ул. Малая Арнаутская. Ну так что ж тут сделать... В большинстве случаев, к счастью, так не делают. Кстати, адреса российских провайдеров Крыма по базе GeoIP определяются как украинские. Так что, не знаю, к чему эта дискуссия. Нравится решение - применяйте, а не нравится - извините.


  1. GRaAL
    00.00.0000 00:00
    +10

    Актуальной задачей для веб-ресурса в нынешних реалиях

    является занимание очереди в пятницу, чтобы в субботу пораньше освободиться


  1. Mudrist
    00.00.0000 00:00
    +2

    Интересно, минусуют за упоминание новых регионов что ли?


    1. fk0
      00.00.0000 00:00
      +11

      Минусуют за дурость. Надоели вот такие огораживания. И со стороны роскомпозора и здесь. И надо признать, у роскомпозора логики всё же больше, чем у автора поста.


  1. maXimus2031
    00.00.0000 00:00
    +2

    очень удобно, и в будущем можно будет без лишних телодвижений удалить ненужные state_code


  1. dimAdmin
    00.00.0000 00:00
    +10

    Ничего - скоро "ваши друзья" из ДНР\ЛНР\Крыма - вернутся на "родину" (граница которой была установлена в 1991м) и таких проблем больше не будет*)


    1. Basov2023 Автор
      00.00.0000 00:00

      Ну, это поглядим ????


      1. kpakozz96pyc
        00.00.0000 00:00
        +4

        Рекомендую глядеть не из-за монитора, а из-за блиндажа, тогда подобные задачи решать не придется.
        Я так понимаю с основного аккаунта подобные статьи мы писать не рискуем?
        Ну и по теме - подобные задачи относятся к типу "не сделали, и переделывать не пришлось"


        1. Basov2023 Автор
          00.00.0000 00:00
          -2

          Я уже отвечал на подобный комментарий. Не нужно - пройдите мимо. А за блиндажом дело не станет. Каждый на своем месте.


      1. ksr123
        00.00.0000 00:00
        +1

        На что тут глядеть? Не, ну вот честно. Вы всерьез верите (хотя понимаю, что тут что-то просто отрабатывается, судя по комментам ТС), что эти "новые регионы" хоть сколько-то долго продержатся даже формально в составе России, как Крым? Увы для вас, это не так.


        1. Basov2023 Автор
          00.00.0000 00:00
          +1

          Вы уходите в сторону от сути материала. Это совершенно не по теме. Сколько бы ни было, а сейчас ситуация такова, какова есть. Учитесь воспринимать реальность такой, какой она есть на самом деле.


          1. ramzes2
            00.00.0000 00:00

            Ждем статью, как сделать отмену коммита.


          1. ksr123
            00.00.0000 00:00
            +2

            Нет, мы уже научились не воспринимать захват территорий как норму. Ситуация такова, что скоро ваши действия будут бесполезными.


    1. Named
      00.00.0000 00:00
      -4

      Для любителей границ напомню, что почти весь 91-й год Украина была в составе СССР, то бишь частью России. Если вы так настаиваете на возвращении к границам 91-го года, напишите об этому Путину и Шойгу, они постараются.


      1. gatoazul
        00.00.0000 00:00
        +11

        Небольшой политический и логический ликбез для молодежи. СССР был союзом государств, одним из которых была Российская Советская Социалистическая Федеративная республика. Следовательно, это Россия была частью СССР, а не наоборот.


  1. Basov2023 Автор
    00.00.0000 00:00
    +9

    Вы напрасно меня минусуете. Дело в том, что вам все равно с этим придется иметь дело и решать эту проблему, в том числе в ваших Грузиях и Латвиях, где вы теперь массово сидите. В каждом регионе есть свои нормы. И системы безопасности, которые анализируют ваш сайт, они располагаются именно там, где эти нормы действуют. И если сайт в данном конкретном регионе открывается без нарушений этих норм - то против вас не будут применяться какие-либо ограничения. Для того, чтобы выяснить, в каких регионах какую информацию выдает ваш сайт, это надо целое расследование провести. Этим скорее всего не будут заморачиваться.


    1. shibanovan
      00.00.0000 00:00
      +6

      Вы это с кем?)


      1. Basov2023 Автор
        00.00.0000 00:00

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


        1. nowHab
          00.00.0000 00:00

          У меня прямо сейчас есть сотрудники из Украины, хотя конечно есть сложности с оплатой, но в целом все адекватно.

          А украинский телевизор можно сейчас и не смотреть, всю местную пропаганду перескажут злобные минусаторы в комментариях на Хабре. Практически в режиме Ctrl-C => Ctrl-V.


  1. qw1
    00.00.0000 00:00
    +5

    Зачем заставлять движок регекспов парсить до конца строки, когда нужно проверить только префикс.

    Предлагаю вместо
    ~^RU:\w*$
    использовать
    ~^RU:


    1. Basov2023 Автор
      00.00.0000 00:00
      +3

      Принимаю. Спасибо за поправки!


  1. nowHab
    00.00.0000 00:00
    -8

    Спасибо большое автору за полезный материал и адекватный подход.

    Реакция украинцев и сочувствующих в комментариях предсказуема, нарративы легко узнаваемы. Именно поэтому им проще ограничить доступ на сайты, чем вычищать потоки сознания. Материал помогает решить эту проблему.


    1. zVadim
      00.00.0000 00:00
      +1

      А вам спасибо за то, что потрудились завести новый аккаунт специально, чтобы написать этот комментарий)


      1. nowHab
        00.00.0000 00:00

        Благодарю вас за высокую оценку моих усилий по справедливому комментированию статей.


      1. RifleR
        00.00.0000 00:00
        +3

        Я не согласен с мнением комментатора, которому вы ответили (принадлежу к другому табору, так сказать), но понимаю, зачем создавать отдельные аккаунты для комментирования в политических темах и не могу за это осуждать. Потому что "несогласные" не будут ставить минусы комментам, они сразу пойдут в карму. При этом среди "несогласных" в политических постах повышенное количество неадекватов (сегодня мне поставили минус в этой теме за "Личную неприязнь"). А если карма отрицательная, к сожалению, для Хабра это не просто цифры в профиле, а приносит реальные неудобства.
        Еще немного оффтопика. Такой интересный момент, что среди причин минуса в карму присутствует "Политика или пропаганда". Хотя подобные этому посты сами являются по своей сути политическими и странно не обсуждать политику в комментариях.


        1. Basov2023 Автор
          00.00.0000 00:00

          Здесь обсуждается чисто технический вопрос. Как решить конкретную техническую задачу. А то, что задача порождена политикой, так все в этом мире порождено политикой. Потому что политика суть жизни.


  1. ZiggiPop
    00.00.0000 00:00
    +3

    Не буду спрашивать про ЛДНР или Крым, но как вы маркируете, например, Херсон, который по конституции РФ является ее административной единицей, но таковой не является ни де-факто, ни де-юре (по международному консенсусу)?


    1. Basov2023 Автор
      00.00.0000 00:00

      В приведенном примере Херсон будет относиться к разрешенным адресам, как часть Херсонской области. При желании, можно устроить более тонкую фильтрацию, по субрегиональному признаку. Такая возможность в таблице GeoLite2-City имеется. Разумеется, актуальность информации по этим субрегионам сомнительна. Но уж как есть. А если вас интересует конкретно мое отношение, то я отношусь как и должно гражданину РФ, дававшему присягу.


      1. whoisking
        00.00.0000 00:00

        Люди важнее присяги


        1. Basov2023 Автор
          00.00.0000 00:00
          -4

          Ну вот и расскажите это Зеленскому. И не нарушайте правила Habr


          1. Ionenice
            00.00.0000 00:00
            +5

            Зеленский не виноват, что украинцам приходится убивать россиян ????‍♀️


            1. Basov2023 Автор
              00.00.0000 00:00
              -2

              Вы же сами сказали, что люди важнее любых идей. Так я вас понял. Ну так не противоречьте сами себе. И не продолжайте нарушать правила.


              1. Ionenice
                00.00.0000 00:00
                +3

                Говорил не я, но я согласен с тезисом. И как раз украинцы и сражаются за свою жизнь, и им, к сожалению для россиян, плевать на россиян, которые пришли убивать всех подряд


                1. Basov2023 Автор
                  00.00.0000 00:00
                  -4

                  А из чего это следует, что всех подряд?


                  1. Ionenice
                    00.00.0000 00:00
                    +4

                    из количества погибших? Из-за разрушений? Из-за террактов? Что они вообще делают в другой стране, за что они дохнут?


                    1. Basov2023 Автор
                      00.00.0000 00:00
                      -4

                      У вас неверная информация.


                      1. Ionenice
                        00.00.0000 00:00
                        +6

                        Погибших нету? Разрушений и стёртых городов нету? Нету террактов, которые блять официально объявляют? Или может не дохнут тысячами? Недавно вон кноун во главе минобороны рф сказал про украинцев в городе, которые россияне больше полугода пытаются атаковать, попробуйте теперь экстраполировать сказанное на другую, атакующую сторону


                      1. Basov2023 Автор
                        00.00.0000 00:00
                        -2

                        Вы разводите флуд и нарушаете правила. Идите спорьте на политические форумы.


                      1. Ionenice
                        00.00.0000 00:00
                        +1

                        У вас буквально для этого и создан аккаунт и почти все комментарии об этом


                      1. Basov2023 Автор
                        00.00.0000 00:00

                        Моя публикация посвящена решению технической задачи ограничения или распределения доступа к информации в зависимости от географической привязки с учетом того, как формируют соответствующую базу адресов ее владельцы. А владельцы определяют новые регионы РФ как часть территории Украины. При том, что де-факто они находятся в зоне ответственности, экономических интересов и транспортных потоков РФ. При этом правильно настроить ограничения можно с помощью инструментов, создаваемых организациями, недружественно настроенными к РФ. Я и показываю, как это можно легко решить, используя такие инструменты.


                      1. ramzes2
                        00.00.0000 00:00

                        И в чем же эта информация неверная?


                      1. Basov2023 Автор
                        00.00.0000 00:00

                        А это относится к обсуждаемой теме? Идите в соответствующие политические ресурсы, там все написано.


                      1. ramzes2
                        00.00.0000 00:00

                        А заявление "У вас неверная информация" как относится к теме?


                      1. Basov2023 Автор
                        00.00.0000 00:00
                        -1

                        Никак. Пишите жалобу о заявлении, не относящемся к теме. В Спортлото.


  1. fk0
    00.00.0000 00:00

    Соответственно, если, скажем, разрешить доступ к ресурсу только с территории РФ...

    Зачем такая дурость нужна? Интернет задумывался как общепланетарная сеть.

    Иностранные шпионы всё равно пролезут через российские прокси, а наоборот, российские граждане с непонятными способами подключения к интернету будут мучаться.

    PS: а как вы будете различать левый и правый берег Херсона?


    1. Basov2023 Автор
      00.00.0000 00:00

      Дурость это или не дурость - каждый решает сам для себя. Если вам этот механизм не нужен - пройдите мимо.

      А вообще, то ли еще будет. Не хотите разделенный интернет? А ведь к этому все идет. И прийдет рано или поздно. Мало ли что задумывалось. Век первобытного коммунизма в интернете безвозвратно прошел. Учитесь жить в новых условиях.

      P.S. Левый и правый берег Херсона я не буду различать. Таких механизмов мне не надо. Достаточно защиты от дураков. От шпионов защищаться не имеет смысла.


  1. ramzes2
    00.00.0000 00:00
    +12

    В аду есть отдельный котел для тех, кто делает географические блокировки в интернете.


    1. Basov2023 Автор
      00.00.0000 00:00

      Расскажите сначала это тем, кто блокирует доступ к своим ресурсам для клиентов из РФ. Или "вы не знали"?


  1. ramzes2
    00.00.0000 00:00
    +2

    Ждем еще одно пробытие дна, сотрудники роскомпозора придут на хабр со статьями, как правильно блокировать сайты и как правильно судовые иски подавать.


    1. Basov2023 Автор
      00.00.0000 00:00
      -9

      Конечно, сотрудники роскомнадзора рано или поздно заглянут и в ваш гадюшник. Я в этом даже не сомневаюсь. Во всяком случае, такие как вы делают для этого все возможное. И, боюсь, этот визит не будет приятным ни для вас, ни для администрации ресурса ????


      1. ramzes2
        00.00.0000 00:00

        Что значит "ваш гадюшник"?


        1. Basov2023 Автор
          00.00.0000 00:00
          -4

          Почитайте комментарии к статье и посмотрите на себя в зеркало. И будете знать что такое "ваш гадюшник".


          1. ramzes2
            00.00.0000 00:00

            Ответа на вопрос не увидел, увидел только голословое обвинение.


            1. Basov2023 Автор
              00.00.0000 00:00
              +1

              Обвинение в чем?


              1. ramzes2
                00.00.0000 00:00

                Не удивительно, что вам именно такими задачами приходится заниматся.


                1. Basov2023 Автор
                  00.00.0000 00:00

                  Не удивительно, что вам именно такие статьи сказано зафлудить


                  1. ramzes2
                    00.00.0000 00:00

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


                    1. Basov2023 Автор
                      00.00.0000 00:00
                      -1

                      Пишите жалобу. В Спортлото.


                1. nowHab
                  00.00.0000 00:00
                  -2

                  Такими, это какими? Отсеивать на сайте буйных? Ну так и на улицу их не выпускают, пока не наступит ремиссия. Почему не отфильтровать их на сайте? Это мое право, как владельца.

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


                  1. ramzes2
                    00.00.0000 00:00

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


                    1. nowHab
                      00.00.0000 00:00
                      -3

                      А, так вы добросовестно заблуждаетесь. Тогда я поясню как работают фабрики троллей украинские.

                      1. Общий поток неадеквата и агрессии с украинских IP в комментариях. Объявления вроде "Взломаю WhatsApp" и прочие. Разводы и мошенничество.

                      2. Сообщения вида "Мой муж десантник, украл машинку, привез домой на танке. Ищу инструкцию.". Такого очень много. В самых плохих случаях муж насиловал младенцев при этом.

                      3. DDOS. Берут скрипты любезно предоставленные и со своих IP генерируют DDOS на популярные сайты. Неприятная вещь, если до этого у сайта никаких проблем не было, форум 15 лет спокойно работал без всяких защит.

                      Украинский телевизор можно и тут в комментариях на Хабре почитать, зачем еще модераторов мучить лишней работой по выгребанию шлака?

                      Я правда не блокирую совсем трафик, чтобы человек не шел за VPN. Просто пишу при постинге "Временная ошибка на сервере. Попробуйте позднее."


                      1. ramzes2
                        00.00.0000 00:00
                        +1

                        Ну понять, почему происходит "общий поток неадеквата и агресии" с украинских IP совсем не сложно. Ваш способ борьбы с ним, это борьба со следствием, а не с причиной.


                      1. nowHab
                        00.00.0000 00:00
                        -2

                        И в чем смысл везде вкорячивать свою политическую позицию?

                        На ваш взгляд нужно пропускать на сайты откровенный шлак?

                        Моя задача убрать буйных и защитить сайты от откровенного спама, мошенничества, DDOS и т.п.. Разве статья в этом не помогает?

                        С причинами, как я это вижу, ВС РФ пытаются справиться по мере сил. Вы можете быть с этим согласны или нет, но это обсуждение статьи, а не политических предпочтений.


                      1. ramzes2
                        00.00.0000 00:00
                        +2

                        Одобрение действий ВС РФ в массовых убийствах, разрушениях, террактах - это уже не о политике, а о здравом смысле.


                      1. nowHab
                        00.00.0000 00:00
                        -2

                        Ну для одних полиция это стражи порядка, а для других это конечно, преступники, которые не дают безнаказанно убивать своих сограждан.

                        При всем при этом не ясно как это относится к теме статьи.


      1. Arsmerk_true
        00.00.0000 00:00
        +1

        ты че попутал, гадюшник это ты


  1. imjustwatching
    00.00.0000 00:00
    +4

    Снова свежезареганный джентльмен разводит политоту приплетая айти повестку, зачем такое пропускать то


    1. Basov2023 Автор
      00.00.0000 00:00

      Ткните, где я кого "развожу".


      1. RifleR
        00.00.0000 00:00
        +6

        Складывается впечатление, что вы написали данную статью в качестве провокации. Пока не совсем понятно, с какой целью. Возможно, с целью навредить Хабру? Потому что за некоторые комментарии здесь уже формально можно заводить дела о "дискредитации" рос. армии. Не знаю, можно ли привлечь администрацию сайта из-за "незаконных" комментариев, но, если можно, то данная тема уже дает повод для этого.

        Почему мне кажется, что это провокация:

        • новый аккаунт, созданный, очевидно, для написания данной статьи;

        • все ваши комментарии - только под этим постом;

        • провокационный, разводящий на политические дискуссии характер ваших комментариев;

        • в статье решается несуществующая проблема (нет такого закона или правила, которое бы обязывало ограничивать доступность какого-либо сайта какой-либо одной страной);

        • более того, на данный момент проблема (если ее все-таки поставить в придуманной вами формулировке) в принципе не может быть решена, так как самим российским правительством пока что не определены точные границы "новых территорий". То есть, вы бежите впереди паровоза;

        • решение выбрано странное, оно не только не решает проблему, но еще и прибавляет новые - вы используете формальные geoIP списки, по которым доступ могут получить те, кому он не положен, и не получить те, кому он разрешен (см. пункт о неопределенных границах).


        1. ramzes2
          00.00.0000 00:00

          Многоходовочка


        1. Basov2023 Автор
          00.00.0000 00:00
          -1

          Отвечу по пунктам:

          1. Новый аккаунт, потому что я никогда раньше не писал для Хабра и вообще на техническую тематику. Но так как тема интересная, решил пробно написать статью. Рассказываю исключительно на собственном опыте, потому что задача возникла именно в моей практике. В общем-то мелочь, но надо понимать, как это решить. Вот я и представил вариант.

          2. Так как я раньше не писал на Хабре, то пока-что у меня не было времени комментировать что-то еще. А под своей статьей я обязан отвечать на вопросы, как автор.

          3. А не наоборот? Разве не меня всеми силами отдельные комментаторы пытаются развести на политические дискуссии? Посмотрите внимательно комментарии. Если где-то сорвался, прошу прощения.

          4. В статье я описал решение своей проблемы, которая реально возникла в моей практике. Я ее решил в определенной степени приближения. То есть не абсолютно. А границы, между прочим, абсолютно четко определены, вы видно не в курсе просто. Это ДНР, ЛНР, Херсонская, Запорожская область в своих административных границах, и отдельные районы Николаевской области. Все это определено. И житель Запорожья может приехать и получить российский паспорт без длительной процедуры получения гражданства. Если вы этого не знали, то я не виноват. Да, некоторое небольшое число людей в приграничных территориях мной не учитывается. Но мне это не надо. Если кому-то надо - это тоже можно учесть. В Базе GeoIP есть вторая часть субрегиона, ее можно тоже задействовать. То есть можно учесть районы, населенные пункты и т. д.

          5. Уже ответил в предыдущем пункте. Напишите создателям базы GeoIP, что их база бесполезна, и ни на что не годна и не решает никаких задач. Кстати, они тоже информацию "собирают". То есть, тоже ошибаются, по-видимому. И тоже случайные люди могут быть неправильно географически определены. И тем не менее их проект существует и востребован.


          1. RifleR
            00.00.0000 00:00

            >А границы, между прочим, абсолютно четко определены, вы видно не в курсе просто. Это ДНР, ЛНР, Херсонская, Запорожская область в своих административных границах, и отдельные районы Николаевской области. Все это определено

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

            Если документа нет, значит вы таки бежите впереди паровоза и тут возникает вопрос, зачем вы это (создаете статью на острополитическую тему, что гарантировано будет провоцировать такие же политические комментарии) делаете - или по большой наивности, или специально.


            1. Basov2023 Автор
              00.00.0000 00:00

              См. Федеральный закон от 4.10.2022 (№7-ФКЗ). Там все чётко сказано.


              1. RifleR
                00.00.0000 00:00

                Я там вижу только это:

                >Пределы территории Запорожской области определяются границами территории Запорожской области, существовавшими на день ее принятия в Российскую Федерацию и образования в составе Российской Федерации нового субъекта.

                Так а где можно ознакомиться с документом, который регламентирует границы? Это ведь юриспруденция - на все должен быть документ.

                Еще более интересно это ваше заявление:

                >и отдельные районы Николаевской области

                на каком документе оно основано?


                1. Basov2023 Автор
                  00.00.0000 00:00
                  -1

                  Ищите на украинских ресурсах. Границы области не поменялись. Какие были, такие есть, за исключением отдельных муниципальных округов. Но их границы тоже неизменны. 20 сентября Сальдо подписал указ о включении Снигиревского и Александровского муниципальных округов в состав Херсонской области в своих текущих административных границах. Хотите поиграть со мной в демагогию? Бесперспективно.


                  1. RifleR
                    00.00.0000 00:00
                    +3

                    >20 сентября Сальдо подписал указ о включении Снигиревского и Александровского муниципальных округов в состав Херсонской области в своих текущих административных границах

                    а у него были полномочия это делать?

                    Ок, допустим, так как эти районы в то время были под контролем ВС РФ, там проводили "референдум", и на этой основе их типа включили туда.

                    Но что с городом Запорожье? Там "референдума" отродясь не было. Но вы считаете этот город тоже территорией РФ.

                    Должна же быть какая-то последовательная логика? Почему тогда город Киев не присоединить к Херсонской или Запорожской области? Легитимность и осмысленность такого указа будет аналогичной.

                    Собственно, из-за этого и возник спор здесь в комментариях. Поэтому я и предлагаю дождаться, пока появятся логические разъяснения по поводу границ, а не спешить. Очень вероятно, ваш конфиг придется переделать. Так зачем делать работу дважды? "Поспешишь - людей насмешишь".


                    1. Basov2023 Автор
                      00.00.0000 00:00

                      Ну федеральный закон определяет территории однозначно, безотносительно того, где референдум проводился, а где нет. Логика тоже совершенно понятна. И ваша логика мне тоже понятна. Это ваше мнение, вы его высказали - очень хорошо. Если какие-то претензии - обращайтесь к модераторам.


  1. Basov2023 Автор
    00.00.0000 00:00

    -