Сообщество - Web-технологии

Web-технологии

526 постов 5 799 подписчиков

Популярные теги в сообществе:

12

Непосредственный переход к скачиванию (без ожидания)

Для ЛЛ: скрипт позволяет скачивать моды с сайта top-mods .ru без ожидания. Если файлы расположены на modsfire .com или sharemods .com, скачивание начинается сразу. Скачать скрипт можно в разделе Установка. В статье описывается анализ функций "ожидание", и способы их обхода.

Пробелы пред точками добавлены умышленно, что бы не превращались в бессмысленные ссылки.

Для остальных:

В начале поясню, прекрасно понимаю для чего все это: ожидание перед загрузкой, перенаправления, реклама и т.д. Ресурсам необходимо монетизироваться, придумывать способы дольше удерживать пользователя на странице, в том числе что-бы засчитался показ рекламного материала. Подобные ресурсы предоставляют возможность условно-бесплатно пользоваться теми или иными услугами. Просто держите это в уме, и добавляйте полезные для Вас ресурсы в список исключения блокировщиков рекламы. За исключением тех, кто перекрывает контент вплывающими баннерами, или пихают баннеры после каждого абзаца статьи. Нет им прощения = )

Не вдаваясь сильно в подробности, появилась необходимость обновить пачку модов, ~80 для RimWorld. Мало того, что было ожидание на файловом хостинге, так еще и сам сайт с модами его добавил. top-mods .ru, возможно, не самый лучший пример, потому что там после регистрации ожидание пропадает (хотя я и не проверял). Он просто попался под руку, и интересен как пример подобных функций ожидания.

Я постараюсь описать пошагово, как можно обходить их, на что обращать внимание, и что с этим можно сделать.

Обход top-mods .ru

На страницах сайта перед загрузкой предлагается подождать тридцать секунд. После ожидания появляются кнопки перехода к скачиванию, в моем случае две, Скачать и Зеркало. Осмотрим пациента в инспекторе Google Chrome. Нажимаем на клавиатуре [ ctrl + shift + C ] и жмем на интересующий нас блок.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Мы видим тег div#timer_1 и сразу же под ним div#timer_2. Нижний скрыт изначально и появляется, когда таймер заканчивается. Значит, все что мы должны сделать - это сразу после загрузки страницы удалить div#timer_1 (что-бы не мешался) и отобразить div#timer_2. И все.

Переходим к написанию скрипта в браузерном расширении Byte Eight Lab - MultiTool (для Google Chrome). Про его установку в самом конце статьи, в разделе Установка, там же можно скачать уже готовый скрипт.

Весь код, проделывающий все выше описанное, сводится всего к паре строк:

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Единственно что добавим еще, это DOMContentLoaded, иначе скрипт выполнится, когда на странице нужных элементов еще нет.

И важно не забыть в настройках указать https://top-mods .ru/* что-бы скрипт выполнялся на всех страницах. И так же для всех остальных доменов, о которых будет ниже.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

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

Обход modsfire .com

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

Переходим в инспектор, и наблюдаем за изменениями.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Видим, что кнопка - это ссылка, имеет класс download-button, но изначально у нее отсутствует атрибут href. Там же в инспекторе, во вкладке "Сеть" можно заметить, что никакие запросы на сервер не отправляются. Значит ссылка была на странице изначально. Поищем, откуда же она берется. На это может пролить свет функция, которая обрабатывает событие click по этой кнопке. Ищем вкладку "Прослушивание событий" (элемент должен быть выделен).

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Любой обработчик может содержать нужный нам код. Но всегда в первую очередь стоит проверять самый очевидный. А именно, тот который привязан непосредственно к элементу, в нашем случает это a .download-button. Нажмем на него и посмотрим что там внутри.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

var btn = $('.download-button') - наша кнопка помещается в переменную
btn .click(function(){... - привязывается событие click

Далее по порядку, проверяет btnClicked - было ли нажатие на кнопку ранее. Если нет, вставляет html в кнопку, эмитирующий генерацию. И самое интересное setTimeout - таймер, который через определенное время изменит вид кнопки, и... добавит атрибут attr('href', btnHref). Это именно то, что мы и искали, переменная btnHref очевидно хранит ссылку. В третьей строке кода на скрине видим: var btnHref = btn.attr('href'); То есть ссылка у этой кнопки была изначально, скрипт просто перенес ее в переменную и удалил атрибут.

Тут тоже все довольно просто, но как всегда есть одно но. Так же как мы это сделали выше может не получится, DOMContentLoaded может выполнится уже после того как отработается скрипт удаляющий href из кнопки. Пойдем другим путем, мы вообще не будем дожидаться загрузки страницы и перейдем по ссылке сразу, как она появится на странице.

Расширение Byte Eight Lab - MultiTool встраивает код сразу, как становится это возможно, до загрузки контента, что позволяет нам воспользоваться MutationObserver. Это наблюдатель, который будет сообщать обо всех изменениях на странице. Нас интересуют новые элементы, они будут содержаться в addedNodes. Перебирая элементы, найдем a .download-button.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Нашли, сразу переходим по ссылке location .href = node .href; В итоге получилось, что страница даже не успела загрузиться до конца, как мы уже переходим далее.

После запуска скрипта происходит удивительное, файл начинает скачиваться сразу, хотя у нас должна была быть еще одна страница с рекламой и кнопкой. Оказывается на второй странице такая же кнопка a .download-button, наш скрипт нашел ее, и точно так же перешел по ссылке location .href = node .href; она уже содержала прямую ссылку на файл.

Обход sharemods .com

Аналогичным образом сначала просто наблюдаем за поведением. Нас встречает кнопка Create download link, через шесть секунд меняется на Download link is ready. Повторное нажатие перезагружает страницу, при этом адрес не меняется, даже не добавляется GET параметр в адрес. Как правило, такое поведение свидетельствует о том, что был передан POST запрос, или установлена cookie. Проверить эту теорию можно в инспекторе, во вкладке "Сеть". Повторяем действия и смотрим на загруженную страницу, она будет самой первой в списке.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Метод запроса: POST - подтверждает догадку о том, что была отправлена форма.
Проверим HTML:

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Значит все что нужно сделать - отправить форму сразу, как она появится на странице, так же через MutationObserver. Единственным отличием будет только элемент, который нужно найти, в этот раз это form#dForm.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

Когда нужный элемент найден, выполняем node .submit(); это отправит форму. На следующей странице появляется кнопка Start Download, которая уже содержит прямую ссылку на файл. Посмотрим на нее в инспекторе:

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

a#downloadbtn - будем дополнительно искать и ее.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост

И сразу переходим по ссылке.

Итог

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

Установка

  1. Устанавливаем расширение Byte Eight Lab - MultiTool для Chrome

  2. Скачиваем скрипт Быстрый переход к скачиванию.json

  3. Кликаем по значку расширения, затем во вкладке "Страница" в самом низу, в блоке "Встраиваемые скрипты и стили" жмем добавить.

  4. Откроется вкладка, в ней переходим во вкладку "Настройки", и загружаем скрипт.

Непосредственный переход к скачиванию (без ожидания) Расширение для хрома, Javascript, Моды, Инструкция, Длиннопост
Показать полностью 13
0

Меню пикабу

Меню пикабу Логика Пикабу, Интерфейс, Программирование, Ux

Вечером открыл обновленное меню и немного удивился. Но через пару секунд удивление сменилось любопытством и захотелось потыка еще)). Хорошо получилось. Отлично! Умеете-могете

20

Миниатюры в каталоге www.old-games.ru

Вода

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

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

Ну и естественно...

Миниатюры в каталоге www.old-games.ru Javascript, Расширение для хрома, Ретро-игры, Длиннопост

И ничего. Вот так с ходу, по такому "богатому" описанию найти не удалось. Но есть замечательный сайт, хранящий историю, www.old-games.ru. Было решено пробежаться по каталогу, по жанру стратегии, в надежде узнать по скриншотам.

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

Собственно суть

Было принято решение: потратить пять минут на код реализующий картинки в каталоге. Чем я и хочу поделиться с Вами, в надежде что это поможет кому-то облегчить поиски. Код элементарный, добавляет кнопку "Загрузить изображения" к каждому элементу каталога, и еще одну "Загрузить все изображения" в шапку. Клик по кнопке фоном загрузит деталку, дернит постер и скрины, и вывалит там же, где была кнопка.

Миниатюры в каталоге www.old-games.ru Javascript, Расширение для хрома, Ретро-игры, Длиннопост

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

Как пользоваться

  1. Первое, что нам понадобится, расширение для браузера Byte Eight Lab - MultiTool для Chrome (вроде как в Edge и Opera тоже будет работать).

  2. Второе, сам скрипт.

  3. Кликаем по значку расширения, затем во вкладке "Страница" в самом низу, в блоке "Встраиваемые скрипты и стили" жмем добавить.

  4. Откроется вкладка, в ней переходим во вкладку "Настройки", и загружаем скрипт.

  5. ...

  6. Profit!

Миниатюры в каталоге www.old-games.ru Javascript, Расширение для хрома, Ретро-игры, Длиннопост

В заключении

Игру в итоге благополучно нашел, Dark Reign: Battles of the Outer Rim, да еще много интересного и забытого: KKnD: Krush, Kill 'n Destroy и Battlezone. Хорошие были времена. Обновить воспоминания пока не успел, наверное надо что-то типа VMware организовать под это дело, но это уже другая история.

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

Показать полностью 3
18

Маршрутизатор или роутер? СПБ

Добрый вечер! Уважаемые знатоки, подскажите пожалуйста, у подруги в СПБ подключён Ростелеком интернет. Роутер покупала свой. Ростелеком сказали - без платного арендного маршрутизатора интернета не будет! Переводчик даёт определение,что маршрутизатор, собственно, переводится как роутер.

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

Вопрос - есть ли смысл в маршрутизаторе если можно дешевле арендовать их же роутер? (Она собирается новый покупать так как её уже слабо работает-техник сказал).

Не обманывают ли Ростелеком навязыванием услуг?

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

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

Мамкины язва комментароты идити сразу на ЙуХ :)

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

Чутка предыстории. Кайфуем от жизни, генерируем траф, шарим в seo, вот наше небольшое агентство seonode.ru состоящее из профессионалов, не стоим на месте в общем.

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

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

Суть

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

Сразу к причине недовольства к Beget и РКН в целом:

  1. Приходит автоматическая абуза к хостеру.

  2. Хостер автоматически банит сайт.

  3. Владелец сайта пишет в РКН, мол объясните причину в чем проблема и т.п.

  4. В РКН сотрудник проверяет домен видит страницу от хостинга, что домен заблокирован и контента под запретом нет.

  5. Сотрудник РКН дает вам ответ что с доменом все норм и ограничений нет.

  6. Пересылаете письмо от РКН в Beget, что с доменом все норм.

  7. Beget снимает блокировку.

НО СЦУКО, ПОХОДУ ЭТО ЦИКЛИЧНО И МОЖЕТ ПРОИСХОДИТЬ БЕСКОНЕЧНО ПО ВСЕЙ ВИДИМОСТИ! И причина тут думаем в автоматизме и пункте 4, да и вообще во всей схеме.

И всем в Beget реально пофиг до вас, никто не хочет слушать и что ваш сайт не нарушает законы РФ, все происходит автоматом! Ну и РКН тоже такие же.

Логика как у школьников, нам сказали мы и локнули пишите в РКН. Пишешь в РКН в ответ всё норм.

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

Вот пруфы скучной переписки с Beget и РКН :

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

Ответ который всегда “калит” и он означает, что реальный ответ вы получите ХЗ когда:

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

В нашей ситуации реальный ответ мы получили примерно спустя 5 часов:

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

И Всё! Мы начали понимать с этого момента что Beget реально наплевать на своих клиентов.

В действительности наш сайт не нарушает абсолютно ничего!!!

  • Мы не банчим алкашкой и не доставляем её. На сайте присутствуют об этом дисклеймер.

  • В описании сайта, в faq есть тоже об этом информация.

  • На сайте даже отсутствуют изображения алкогольной продукции.

Карл!!!! Забанить сайт по причине что в нём присутствуют ключевые слова “доставить алкоголь” это капец какое открытие для нас в 2023 году!

В общем сформировали мы письмо и отправили в РКН , получили такой ответ:

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

Типа с сайтом все хорошо, запрета на нём нет!

Заходим в “Единый реестр доменных имен” eais.rkn.gov.ru, вбиваем наш домен и видим что доступ действительно не ограничен:

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

Спустя неделю все повторяется и Beget банит опять домен! Объясняем им что мол статус на сайте - доступ не ограничивается. Они в ответ:

Goodbye Beget или как лучший хостер РФ забил на своих клиентов, прогиб вместе с РКН Интернет, Хостинг, Begetru, РНК, SEO, IT, Длиннопост, Роскомнадзор, Beget, Мат

Пишем в РКН, они нам в ответ что с сайтом все норм и на нем нет никаких ограничений. Сайт разлочили!

Показать полностью 6
4

Треугольник Серпинского за 439 символов

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

Треугольник Серпинского за 439 символов Javascript, Треугольник Серпинского

Создать файл html и вставить туда код:
<canvas id=c><script>a=[],s=400,t=0,u=3,M=Math;for(i=-0.5;i<u;){r=M.PI*2*i++/u;a.push({x:M.sin(r)*s+s,y:M.cos(r)*s+s})}e=document.getElementById("c");e.width=e.height=2*s;c=e.getContext("2d");c.beginPath();a.forEach(q=>c.lineTo(q.x,q.y));c.stroke();q=()=>a[M.round(M.random()*u)],v=(a,b)=>b+(a-b)/(u-1),p=q(),e.onclick=n=()=>{t=t?clearInterval(t):setInterval(()=>{s=q();p={x:v(p.x,s.x),y:v(p.y,s.y)};c.fillRect(p.x,p.y,1,1)})};n()</script>

u - количество углов (можно увеличить)
при нажатии анимация останавливается и восстанавливается.
Уменьшить размер не потеряв функциональность пока не получилось

Показать полностью 1
18

Ответ на пост «Как настроить свой VPN сервер за 5 минут? Обзор wireguard VPN!»1

Ответ на пост «Как настроить свой VPN сервер за 5 минут? Обзор wireguard VPN!» IT, YouTube, Linux, Windows, Интернет, VPN, Wireguard, Ответ на пост, Текст

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

Заявленные преимущества WireGuard над другими VPN решениями:

  • Простой в использовании.

  • Использует современную криптографию: Noise protocol framework, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF и т.д.

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

  • Высокая производительность.

  • Четкая и проработанная спецификация.

Максимальное преимущество в производительности (по сравнению с OpenVPN и IPSec) будет заметно на Linux системах, так как там WireGuard реализован в виде модуля ядра. Кроме этого поддерживаются все основные системы: macOS, Android, iOS, FreeBSD и OpenBSD, Windows. Скачать клиента для своего устройства можно по ссылке: https://www.wireguard.com/install/

Первое, что нам потребуется – linux машина.

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

Нам подойдут:

  • AlmaLinux >= 8

  • Arch Linux

  • CentOS Stream >= 8

  • Debian >= 10

  • Fedora >= 32

  • Oracle Linux

  • Rocky Linux >= 8

  • Ubuntu >= 18.04

На GitHub есть отличный bash скрипт для автоматической установки и настройки VPN сервера.

https://github.com/angristan/wireguard-install

Подключаемся на свой VPS по SSH (если вы на Windows - используйте для этого PuTTY), качаем и запускаем скрипт в консоли:

curl -O https://raw.githubusercontent.com/angristan/wireguard-install/master/wireguard-install.sh

chmod +x wireguard-install.sh

./wireguard-install.sh

Следуем инструкциям и отвечаем на вопросы

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

В результате мы получим файл конфигурации для wireguard и qr-код для настройки мобильного устройства.

Взято отсюда

Показать полностью
Отличная работа, все прочитано!