Конструирование сайта, защищенного от блокировок

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


    • со звездочкой
    • по адресу 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
    • 0
      А такую защиту смогут запретить законом? И вообще возможно ли запретить определённый вид кода или отдельные теги этого самого кода? У нас же, как подметил автор, всё запрещают.
      • +4
        Ну например, у нас есть математические теоремы, сами формулировки которых, а также доказательство, составляют государственную тайну.

        Что бы ни захотел законодатель, он в состоянии принять. Вопрос в том, как к этому отнесетесь именно вы и такие, как вы, и что будете делать по этому поводу.
        • +2
          например, у нас есть математические теоремы, сами формулировки которых, а также доказательство, составляют государственную тайну.
          Э-э-э-ээ… мда…
          И ведь не спросить даже…
          • +1
            не знаю точно, к сожалению или к счастью, я не причастен к этой тайне. Знаю только области примерно — комбинаторика, кодирование, теория вычислений. Скорее всего, речь идет об алгоритмах шифрования, доказательствах их эффективности и количестве вычислений для кодирования и декодирования. Но это только предположение.
            • +1
              я немного причастен был.
              у нас необходимо было получать вторую категорию допуска просто для получения учебника.
              просто раздел математики, даже ничего такого жуткого.

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

              так что могут запретить просто какие то наработки даже по довольно таки общим теориям чего нибудь
        • 0
          Допустим, как с VPN: запретили обход блокировок, но не средства их реализующие.
          • +4
            Законы? В этой стране? Просто забанят по IP.
            • –2
              Банилка сломается у этой страны все IP банить. Смена VPN-провайдера решит проблему… на время… до следующей смены провайдера.
              • 0
                Банилка сломается у этой страны все IP банить.

                Когда банилка ломается, ломается и интернет, ибо провайдерам проще самим ввести белые списки, чем платить штрафы от ревизора.
                • 0
                  друг мой, интернет уже сломали, а вы не заметили :/
                  • 0
                    Да нет, пока в общем то работает. Вот когда 8.8.8.8 перестанет пинговаться из-за белых списков, тогда можно будет тушить свет.
          • +2

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


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

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


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

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

              Canonical URL и карта сайта?
              • +1
                Тогда достаточно заблокировать canonical url, чтобы всё сломалось.
              • 0

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

                • НЛО прилетело и опубликовало эту надпись здесь
                  • +1
                    Но что самое вероятное, он даже морочиться не будет, особенно если IP известен. К Вам просто приедут и поговорят.

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

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

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

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


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

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

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

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

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

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


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

                          • 0
                            На данный момент ркн говорит «заблочьте эту ссылку» и тут всё будет выполненно. В принципе можно не геммороиться с отдельными поддоменами для каждого юзера — достаточно встроить в урль рандобный блок, который рандомизируется при каждом открытии.
                            • +1
                              Когда ему это надоедает, то он присылает адрес домена, или ещё какую фигню, и блокируй как хочешь.
                          • 0
                            Пособие из разряда «Как жить с посторонним предметом в заднице».
                            Не жить с ним надо, а извлекать.
                            • +1
                              Ага, в таком обществе, которое возвело ношение посторонних предметов в прямой кишке чуть-ли не в национальную идею, только потянешься извлекать (по-крайней мере из себя) — как обзовут маргиналом, предателем и педерастом. А уж соберешься пропагандировать массовое вытаскивание — так кто-нибудь обязательно религиозно оскорбится или вообще сочтет за экстремизм.
                              • 0
                                Тогда нужно писать статьи на тему «Тактические тренировки на свежем воздухе» и «Принудительный фандрайзинг».
                              • 0

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

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

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

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

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

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

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

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

                                  • 0

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

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

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

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


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

                                        • 0
                                          печенки

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


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

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


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

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


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

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

                                            Как я понял, предлагалось всю страницу запихать в 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=

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

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

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


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

                                                  • 0
                                                    Проблема со ссылками внутри документа: каждая ссылка должна содержать внутри себя весь документ, на который ссылается? Так внутри одного урла придётся заключать весь интернет.
                                      • 0
                                        Каждый домен может ещё ссылаться на уникальный адрес IPv6.
                                        • 0
                                          Далеко не у всех клиентов есть v6, а предварительным условием является разумеется, работоспособность сайта для неподготовленного клиента: подготовленный уже имеет какие-никакие способы обхода и для него все эти извращения излишни.
                                        • +4
                                          Описанный вами способ не работает. Он работает только теоретически, но в реальности спотыкается об особенности блокировок отдельных провайдеров и то, как запись добавят в реестр.
                                          Например, Yota, Дом.ru, 2ком и некоторые другие провайдеры блокируют всю доменную зону, независимо от того, что находится на уровнях выше.
                                          Пример: в реестре есть запись, блокирующая конкретный URL: http://putinhuylo.com/. На Yota не открывается и http://a.putinhuylo.com/
                                          Судя по статистике blockcheck, 11-13% провайдеров блокируют по IP-адресу. Ваш способ не будет работать, будет одна wildcard-запись на все поддомены.
                                          И третье — если бравые ребята из Роскомнадзора увидят сайт, который так себя ведет, они заблокируют его звездочкой. Им уже давно не нужно никакое юридическое обоснование для добавления записи в реестр.
                                          • +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 остаются не заблокироваными.

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

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

                                          • +1

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


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

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

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


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

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


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


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

                                            • 0

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

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

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


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

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

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

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


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

                                                      • 0
                                                        Было бы интересно взглянуть на решение с js-кукой. Исходники прототипа на житхабе, пулл реквесты приветствуются
                                              • 0
                                                Хорошие идеи, спасибо! А как вариант сделать мини-плагин для хрома/фф, который якобы в случае блокировки сайта будет редиректить юзера на зеркала?
                                                • 0
                                                  Плагин уж если делать, так сразу полноценный — с альтернативным защищенным распределенным децентрализованным DNS и распределенной сетью доставки, чтобы вообще больше никогда не зависеть от централизованных сервисов.

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

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

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

                                                Самое читаемое