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


  • со звездочкой
  • по адресу IP

будут изложены в других постах. Кому интересна тема, заходите под кат.


Ссылка


https://github.com/http-abs/http-abs/


Описание идеи


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


Примечание 1

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


Как это защитит от блокировки?


  • Если блокировка ограничивается путем и/или точным доменом, то отправив заявку на блокировку такого пути и/или домена, оператор блокировок заблокирует только свой собственный доступ, не затрагивая интересов других пользователей.

Примечание 2

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


  • Когда и если вы, как администратор сайта, обнаружите блокировку, вы можете исключить (допустим, заменить на котиков) выдачу спорного материала по данному адресу: это никак не повлияет на выдачу того же материала другим пользователям.

Примечание 3

При условии предыдущего примечания.


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

А как же тогда делиться ссылками?


Легко. Идентификатор агента, выделенный пользователю для просмотра сайта, сохраняется у него в куках. Пользователь просто делится ссылкой из адресной строки.


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

А зачем сохранять куку?


Чтобы изолировать оператора блокировок. Если повезет, после нескольких блокировок, его можно будет даже идентифицировать.


Не усложнит ли это жизнь пользователю?


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


Усложнит ли это жизнь разработчику сервера?


Возможно. Ему не придется учитывать префикс пути и поддомен, входящие в идентификатор агента: их будет обрезать обработчик на первой стадии обработки входящего URL. Однако, чтобы сделать процесс совершенно прозрачным, возможно придется еще потрудиться.


Сможет ли оператор блокировок обойти изоляцию?


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


Оператор просто заблокирует все нафиг со звездочкой и адресом IP


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


Реализация


Архитектура


Для того, чтобы сделать процесс максимально прозрачным, код сосредоточен в сервере фронтенда nginx. Это позволяет ставить под защиту самые разнообразные прикладные серверы практически без ограничений.


Поскольку обработка запроса будет весьма нетривиальной, использован дополнительный пакет libnginx-mod-http-lua, внедряющий язык lua в процесс обработки запросов под nginx.


Дополнительные условия


В идеале, обработка должна производиться так, чтобы бакенд (аплинк, прикладной сервер) — вовсе не был озабочен тем, поставили ли его под защиту. Ему приходят запросы по URL, из которого убраны все элементы идентификатора агента (назовем такие чистыми URL). Чтобы не переделывать возвращаемые страницы, переход по чистому URL с установленной кукой идентификатора агента, вызывает редирект на индивидуальный URL.


Фронтенд не хранит состояние нигде, кроме куки идентификатора агента.


На браузере не задействовано ни одной строки кода javascript. Используется только протокол HTTP.


Ограничения альфа-реализации


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


Для поддоменов, выбрана схема с фиксированным набором поддоменов, пригодная для использования в паре с файлом hosts, без инсталляции дополнительного сервера DNS.


Формат префикса пути предопределен и представляет из себя 32 цифры по основанию 16.


Установленные параметры запуска


Параметры запуска установлены пока прямо в коде.


Набор поддоменов (a, b, c) установлен в переменной и может быть расширен.


Домен установлен, как example.com.


Бакенд ожидается на точке http://127.0.0.1:8000


Выводы


Растущая угроза внезапных блокировок заставляет готовиться заранее и изобретать методы защиты от них владельцев даже вполне лояльных сайтов. Такая защита вполне возможна, не требует никаких телодвижений со стороны пользователя и может быть реализована вполне скромным объемом усилий со стороны администратора сайта.

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


  1. singen_dano
    12.12.2017 20:21

    А такую защиту смогут запретить законом? И вообще возможно ли запретить определённый вид кода или отдельные теги этого самого кода? У нас же, как подметил автор, всё запрещают.


    1. nnseva Автор
      12.12.2017 20:24
      +1

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

      Что бы ни захотел законодатель, он в состоянии принять. Вопрос в том, как к этому отнесетесь именно вы и такие, как вы, и что будете делать по этому поводу.


      1. impetus
        12.12.2017 23:16

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


        1. nnseva Автор
          13.12.2017 06:55

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


          1. kalininmr
            13.12.2017 19:46
            +1

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

            это, принципе, обычная практика.

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


    1. Asm0
      12.12.2017 20:38

      Допустим, как с VPN: запретили обход блокировок, но не средства их реализующие.


    1. sumanai
      12.12.2017 21:46

      Законы? В этой стране? Просто забанят по IP.


      1. scruff
        13.12.2017 13:41

        Банилка сломается у этой страны все IP банить. Смена VPN-провайдера решит проблему… на время… до следующей смены провайдера.


        1. sumanai
          13.12.2017 16:28

          Банилка сломается у этой страны все IP банить.

          Когда банилка ломается, ломается и интернет, ибо провайдерам проще самим ввести белые списки, чем платить штрафы от ревизора.


          1. nnseva Автор
            14.12.2017 08:34

            друг мой, интернет уже сломали, а вы не заметили :/


            1. sumanai
              14.12.2017 16:03

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


  1. firk
    12.12.2017 21:03
    +1

    А они там все такие идиоты и не заметят ничего.


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

    По-моему, оно не "не исключено" а оно очевидно. И никаких новых законов или подзаконных актов для этого не нужно.


    А вот поисковикам вы сильно помешаете вас адекватно индексировать этой защитой.


    1. sumanai
      12.12.2017 22:08

      А вот поисковикам вы сильно помешаете вас адекватно индексировать этой защитой.

      Canonical URL и карта сайта?


      1. samat
        13.12.2017 10:56
        +1

        Тогда достаточно заблокировать canonical url, чтобы всё сломалось.


    1. ivan386
      13.12.2017 01:22

      Ну пусть попробуют заблокировать *.ru, *.com, *.net.


    1. CityCat4
      13.12.2017 06:01

      Оператор просто заблокирует все нафиг со звездочкой и адресом IP

      Оператор просто нафиг разделегирует домен — ну в смысле направит регистратору запрос на разделегирование домена. Да, скажете, можно взять домен не в .ru/.su/.рф Можно. Тогда оператор расторгнет Вам договор с хостером, если он российский или заблокирует хостера, если нет.

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

      Я Вам не пугаю. И даже не предупреждаю. Мне на самом деле все равно :) Если данный «метод» будет реализован — какое-то время на Вас будет распространяться «принцип защиты Неуловимого Джо» — пока он не наберет статистически значимую массу. А потом однажды произойдет то, о чем я уже сказал. Паяльник в.опе — очень веский аргумент в любом споре…


      1. 9660
        13.12.2017 06:12

        Но что самое вероятное, он даже морочиться не будет, особенно если IP известен. К Вам просто приедут и поговорят.

        Простое любопытство.
        Вот ящик хостится у какого либо Хетцнера или типа того. Чей IP им известен? К кому они, собственно, приедут для поговорить?


        1. avost
          13.12.2017 12:43

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


          1. 9660
            13.12.2017 13:02

            Ну если речь о дилетанте то да, вопросов нет.
            А про админку или владельца домена даже не смешно.


            1. avost
              14.12.2017 14:15

              Ну если речь о дилетанте то да, вопросов нет.

              Судя по статье, речь именно о дилетанте.


              А про админку или владельца домена даже не смешно.

              Ну, вы пока не давали повода усомниться в вашей великой компетентности, я в ней и не сомневаюсь, возможно, вы действительно неуязвимы, однако errare humanum est и что касается админки, достаточно вспомнить историю Ужжасного Пиррата Робертса, который прокололся с админкой, несмотря на всю свою паранойю и то, что ему, в общем-то, было что терять, а не просто поиграться в прятки с роскомпозором.


      1. Ghool
        16.12.2017 14:17

        Ну, с такой логикой вообще ничего можно не делать.


        1. firk
          16.12.2017 16:47

          Вы поняли суть, правда не совсем точно её выразили. В плане "игры в прятки с роскомнадзорами и прочими ведомствами" действительно ничего делать не надо. Не согласны с политикой — меняйте политику, политическими методами.


    1. nnseva Автор
      13.12.2017 07:19

      ну, поисковики думаю, лучше всего отфильтровать по ip.


  1. vanxant
    12.12.2017 21:56

    Seoнисты передают вам привет


  1. zenkz
    13.12.2017 02:01

    А мне кажется что единственный надёжный способ обхода блокировок — это mesh-сети или p2p сети. Т.е. когда все связаны со всеми и могут перенаправлять запросы, если прямой путь невозможен. Т.е. полоностью децентрализованная маршрутизация — возможно ещё и с выбором оптимального маршрута… В этом случае единственный способ заблокировать — отключить интернет полностью.


  1. Shakhmin
    13.12.2017 07:07

    Если на сайте "случайно" появился один материал, то заблокировать могут только этот материал (ссылку), при рецидивах, даже закрываемых иногда котиками, заблокируют домен и/или ip
    Опять же у проверяющих не один компьютер и ещё есть телефоны — вам придется долго придумывать адекватное объяснение тому, что страница убрана не для всех
    И как быть с теми, кто использует режим инкогнито?


    А идея интересная как минимум в плане посмотреть, как будет на самом деле


    1. Ghool
      16.12.2017 14:19

      На данный момент ркн говорит «заблочьте эту ссылку» и тут всё будет выполненно. В принципе можно не геммороиться с отдельными поддоменами для каждого юзера — достаточно встроить в урль рандобный блок, который рандомизируется при каждом открытии.


      1. sumanai
        16.12.2017 15:19

        Когда ему это надоедает, то он присылает адрес домена, или ещё какую фигню, и блокируй как хочешь.


  1. omgiafs
    13.12.2017 07:43

    Пособие из разряда «Как жить с посторонним предметом в заднице».
    Не жить с ним надо, а извлекать.


    1. tonissimo
      13.12.2017 08:49

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


    1. YetAnotherSlava
      13.12.2017 19:09

      Тогда нужно писать статьи на тему «Тактические тренировки на свежем воздухе» и «Принудительный фандрайзинг».


  1. YAZART
    13.12.2017 11:59

    А вы не задавались вопросом, что для блокировки может быть использован ip адрес ресурса?


    1. nnseva Автор
      13.12.2017 12:00

      Задавался, это написано в самом начале статьи.


  1. tyomitch
    13.12.2017 12:00

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

    Они разве перед блокировкой кому-то что-то доказывают? Хоть иногда?


    1. nnseva Автор
      13.12.2017 12:14

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

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


      1. tyomitch
        13.12.2017 12:45

        Да даже и без звёздочки: взгляните на antizapret.info/index.php?search=graniru и убедитесь, что необходимость блокировки бесконечного количества ссылок их нисколько не сдерживает.


        1. nnseva Автор
          13.12.2017 14:37

          > убедитесь, что необходимость блокировки бесконечного количества ссылок их нисколько не сдерживает

          ну так и пусть себе не сдерживаются. Чем быстрее забьют реестр, тем лучше :)


          1. tyomitch
            13.12.2017 15:29

            Кому лучше-то?

            Я про то, что если условный судья Нижнегадюкинского райсуда весь свой рабочий день будет выносить постановления о блокировках ваших 100500 доменов, то его это нисколько не обломает. Наоборот: ему за это зарплату платят, а тут ещё и работа не бей лежачего.
            При этом «доказывать необходимость блокировки» он не будет ни разу.


            1. nnseva Автор
              13.12.2017 15:36

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


              1. sumanai
                13.12.2017 16:31

                поэтому его недавно почистили аж вдвое

                Можно узнать что удалили и по какому праву?


                1. nnseva Автор
                  13.12.2017 17:04

                  Было на roskomsvoboda.org лениво искать


              1. firk
                13.12.2017 17:02
                +1

                Доработают чтобы снять эти ограничения, вот и всё. Да ещё и введут статью расходов провайдерам по внедрению нового формата.


  1. Zanak
    13.12.2017 12:01

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


    1. nnseva Автор
      13.12.2017 12:07

      Я исхожу из того, что противодействие (пока?) не является наказуемым, это подтверждается мнением юристов и практикой применения запретов.

      Про «печенку» не понял. Что касается сокращалок, там будет сложнее обеспечить прозрачную работу всяких фокусов, связанных с исполнением javascript и анализом URL на стороне клиента. Но мысль богатая в том смысле, что оператору блокировок будет труднее понять, какую собственно ссылку он хочет заблокировать.


      1. Zanak
        13.12.2017 12:25
        +1

        Я исхожу из того, что противодействие (пока?) не является наказуемым, это подтверждается мнением юристов и практикой применения запретов.

        Текст самого закона не нашел, только в новостях, но вроде как, с 1 ноября этого года поисковики начнут напрягать по 500 — 700 килорублей, за неисполнение требования о блокировке отдельных ресурсов. А значит дойдут и до нас, со временем.


        Про печенки — меня терзают смутные сомнения, что антивирусы, точнее adblock и аналоги могут их резать, и поэтому, была мысль, всю информацию держать непосредственно в url запроса, а чтобы неповадно было играться ручками — шифровать ее.


        1. nnseva Автор
          13.12.2017 15:00

          печенки

          ах печеньки! в смысле cookies.


          с 1 ноября этого года поисковики начнут напрягать по 500 — 700 килорублей

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


          была мысль, всю информацию держать непосредственно в url запроса

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


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


          1. sumanai
            13.12.2017 16:40

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

            Как я понял, предлагалось всю страницу запихать в URI, например, как картинку в base64. Хабрапарсер не умеет в base64, поэтому просто скопируйте это в адресную строку
            Заголовок спойлера
            data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAYEBQYFBAYGBQYHBwYIChAKCgkJChQODwwQFxQYGBcUFhYaHSUfGhsjHBYWICwgIyYnKSopGR8tMC0oMCUoKSj/2wBDAQcHBwoIChMKChMoGhYaKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCj/wAARCAAvACEDASIAAhEBAxEB/8QAGQAAAgMBAAAAAAAAAAAAAAAAAAYFBwgE/8QAMBAAAQIEBQIEBAcAAAAAAAAAAgMEAAUGEgEHEyIyERQIQlJiI0OiwiEzcoKTo7L/xAAYAQADAQEAAAAAAAAAAAAAAAABAwQAAv/EAB4RAAMAAgIDAQAAAAAAAAAAAAABAgMEESESIjFh/9oADAMBAAIRAxEAPwCqMrMvZbV0kdPX7t43USc6IChZbjtEvNEs4ytkij020sczRfTKw1SILLvZs3RM+HxUEKLmqqvAX32BD3LFWzWbgk4VSSAhEBEiifPlqF6lGviV12Vurk9K2qWCrteadt51UiEtP3W2xGV9llKKbpN1N2b5+uqkSWAirbaV5dPTGiDVYqtzQBduSvmS1d0VnnMFuWszAOAkgI/yjAwZXXVHWxhUdyZggggiklNCeH1MVqLmqZ8TeW/1DE477MimHcNku9ErNWE7JipZRT1EzNSbvkkC7y8ULviq7Q4jDPIMFa0lg1FKEjMBVMXzNAvjtj8p+4CG364RsQ6XKKdfIprii0ASYjqvmrZIlVR/Pt5RXWd5CeXUyswtG5D/AGEN8u1SYKqgk6EGyBKq6u8rAC/hCHm9MGTzLF0s0doLpLqpaZAp1u33Rxrz9bG7VrqUZrgggiohOxmI23Y+qLn8MFTBT2ZaTFwVrWcD2/6VflfcP7opVBxpDbiN0dTeYrNXCK7fqksiYKpEJcSGMY1/WtbTSicxF3dTO2QSNygqSKCKXXXTH5Xq1bvNxjIc6QxF67UwbKNEiVvSbqckwPcP0w5VFme8qmvWlSVFLmr3BnbosOKOACV1pfhuiIzMq3GsKtfzk2AsDeWEaWCmp0IQt5QEuBl15JP8E6CCCCLP/9k=


            1. nnseva Автор
              13.12.2017 17:05

              интересный способ, надо подумать, можно ли что-то с этим сделать интересное…


              1. oxidmod
                13.12.2017 17:13

                Нет, ибо длина урлы =)

                Смотрите тогда уж в сторону п2п сайтов
                geektimes.ru/post/284770
                habrahabr.ru/post/112855


              1. firk
                13.12.2017 17:39

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


                Вот ещё ссылка на ту же тему https://habrahabr.ru/post/190202/


                1. tyomitch
                  13.12.2017 17:52

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


  1. bekreyev
    13.12.2017 12:07

    Каждый домен может ещё ссылаться на уникальный адрес IPv6.


    1. nnseva Автор
      13.12.2017 12:08

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


  1. ValdikSS
    13.12.2017 12:12
    +2

    Описанный вами способ не работает. Он работает только теоретически, но в реальности спотыкается об особенности блокировок отдельных провайдеров и то, как запись добавят в реестр.
    Например, Yota, Дом.ru, 2ком и некоторые другие провайдеры блокируют всю доменную зону, независимо от того, что находится на уровнях выше.
    Пример: в реестре есть запись, блокирующая конкретный URL: http://putinhuylo.com/. На Yota не открывается и http://a.putinhuylo.com/
    Судя по статистике blockcheck, 11-13% провайдеров блокируют по IP-адресу. Ваш способ не будет работать, будет одна wildcard-запись на все поддомены.
    И третье — если бравые ребята из Роскомнадзора увидят сайт, который так себя ведет, они заблокируют его звездочкой. Им уже давно не нужно никакое юридическое обоснование для добавления записи в реестр.


    1. nnseva Автор
      13.12.2017 13:32
      +1

      Для чистоты эксперимента, я поместил следующую запись в свой файл hosts:


      217.112.35.75  125135.a.b.c.putinhuylo.com

      (адрес взят у www.ru)


      $ nslookup www.ru
      Server:         127.0.0.53
      Address:        127.0.0.53#53
      
      Non-authoritative answer:
      Name:   www.ru
      Address: 217.112.35.75

      Затем я обратился (с выключенными средствами антиблокировки, разумеется) к сайту 125135.a.b.c.putinhuylo.com и действительно, получил заглушку (провайдер ertelecom).


      Таким образом, действительно, вызывающий раздражение у властей одним названием домен был заблокирован по рекурсивному глобу *.putinhuylo.com (что возможно, неправильно с точки зрения стандартов, но ожидаемо).


      Аналогичным образом, заблокирован и домен kasparov.ru


      С другой стороны, все не так плохо. Например данные записи блокируют несколько очевидным образом связанных друг с другом поддоменов домена olimp786f.top, без блокировки основного домена.


      При этом, путем аналогичных манипуляций с файлом hosts, можно убедиться, что несмотря на блокировку этих поддоменов, другие поддомены домена olimp786f.top остаются не заблокироваными.


      1. ValdikSS
        13.12.2017 13:35

        Таким образом, действительно, вызывающий раздражение у властей одним названием домен был заблокирован по рекурсивному глобу *.putinhuylo.com (что возможно, неправильно с точки зрения стандартов, но ожидаемо)
        Это и странно: нет никакой технической причины так делать. Блокировка подобным образом осуществлялась до того, как на домен добавили другие поддомены. Wildcard-запись на него добавили уже после блокировки, по моей просьбе, как раз для того, чтобы тестировать такое поведение.


        1. darkk
          13.12.2017 16:20

          нет никакой технической причины так делать

          Ну почему же. С этого всё и началось, кажется, пять лет назад, когда некоторые ISP просто добавили зону youtube.com. на рекурсоры :) Видимо, чтоб с www. не заморачиваться.


  1. aamonster
    13.12.2017 13:07

    Интернет-маркетологи рукоплещут: URL всегда позволяет найти, от кого пользователю пришла ссылка =).


    Ну и какую ссылку вы будете давать поисковикам? Думаете, заблокируют не её?


    1. nnseva Автор
      13.12.2017 13:50

      Интернет-маркетологи рукоплещут: URL всегда позволяет найти, от кого пользователю пришла ссылка =).

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


      Ну и какую ссылку вы будете давать поисковикам? Думаете, заблокируют не её?

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


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


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


  1. ghost404
    13.12.2017 23:10

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


    1. nnseva Автор
      14.12.2017 08:52

      К сожалению, куки имеют ограничение, приводящее к невозможности обмена куками между разными доменами второго уровня. Обмен куками между доменами третьего уровня — возможен.
      Не имея возможности обмена куками, мы не сможем (штатными средствами) распознать повторный вход агента оператора блокировок на альтернативный домен и правильным образом редиректить его на его личный URL. Остается только использовать случвйный выбор домена второго уровня, что вероятно, приведет к быстрому исчерпанию пула доменов второго уровня.


      1. ghost404
        14.12.2017 09:37

        Ну почему же нельзя куки передавать. Можно. Ходы надо знать.
        Думаете как SSO работает?
        Просто придется переадресацию делать через js, а не через nginx.


        А по хорошему куку передавать и не надо.
        Один раз переадресовали и поставили куку на домен.
        Если куки нет то запускаем ещё раз процедуру переадресацией.


        1. nnseva Автор
          14.12.2017 10:12

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

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


          1. ghost404
            14.12.2017 20:03

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


            PS: блокировать ссылки могут ещё антивирусы


            1. nnseva Автор
              14.12.2017 23:28

              Было бы интересно взглянуть на решение с js-кукой. Исходники прототипа на житхабе, пулл реквесты приветствуются


  1. investime
    14.12.2017 23:19

    Хорошие идеи, спасибо! А как вариант сделать мини-плагин для хрома/фф, который якобы в случае блокировки сайта будет редиректить юзера на зеркала?


    1. nnseva Автор
      14.12.2017 23:24

      Плагин уж если делать, так сразу полноценный — с альтернативным защищенным распределенным децентрализованным DNS и распределенной сетью доставки, чтобы вообще больше никогда не зависеть от централизованных сервисов.

      Но плагин ведь еще поставить надо. Много ли людей поставили себе friGate?

      А описанное решение — для тех, кто поленится не то чтобы плагин поставить, а даже поинтересоваться, что это вдруг сайт перестал отвечать…