Перейти к содержимому
Жёлтый веб

Автоматизация и арбитраж трафика

Поиск
English
English
Категории
  • Браузеры
  • Домены
  • Клоакинг
  • Креативы
  • Ленды-Проклы
  • Перевод
  • ПП
  • Скрипты
  • Советы-Полезности
  • Софт
  • Трекеры
  • Фб
  • Финансы

Как и где спрятать свой JavaScript

Оставьте комментарий / Ленды-Проклы, Скрипты

В 2023 году я уже писал про довольно простой, но полезный трюк: если нужно спрятать свой JavaScript от лишних глаз, его можно аккуратно завернуть внутрь какого-нибудь стандартного js-файла. Чаще всего под такую задачу берут jQuery, потому что на лендах и прелендах она встречается сплошь и рядом.

Здесь я решил довести эту историю до ума: показать, куда именно вставлять свой JS, как потом его вызывать, можно ли вставить свой JS не в чужой скрипт, а куда-то ещё (СПОЙЛЕР: да, можно!), и как всю эту возню автоматизировать.

Куда и как вставляем

Принцип тут всегда один и тот же (кэп!):

  1. берём файл, внутрь которого хотим что-то спрятать;
  2. находим стабильную точку вставки = создаём отдельную функцию или метод класса;
  3. добавляем туда свой код;
  4. один раз вызываем нашу функцию/метод изнутри файла.

С jQuery схема получается такой:

  • в jQuery 3.7.1 ищем строку jQuery.isArray = Array.isArray;;
  • в jQuery 4.0.0 ищем строку jQuery.expr[ ":" ] = jQuery.expr.filters = jQuery.expr.pseudos;;
  • добавляем со следующей строки свою функцию;
  • вызов этой функции в обеих версиях лучше ставить перед jQuery.noConflict, после присваивания _$ = window.$;.

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

jQuery.setColorScheme = function () {
  console.log("Hello World");
};

Дальше эту функцию нужно один раз вызвать изнутри самого jQuery:

var
  _jQuery = window.jQuery,
  _$ = window.$;

jQuery.setColorScheme();

jQuery.noConflict = function( deep ) {

Куда ещё?

Если вы думаете, что свой js-код можно вставить только внутрь другого js, то…. НЕТ! Такую же историю можно провернуть и с файлами формата SVG.

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

Чтобы вставить в SVG работающий JavaScript, нужно чуть-чуть схитрить. Тело скрипта необходимо обернуть в CDATA, потому что SVG — это XML: если внутри попадутся <, & и прочие спецсимволы, XML-парсер начнёт видеть в них разметку. Поэтому делаем так:

<script><![CDATA[
  console.log("Hello from SVG");
]]></script>

После того, как скрипт вставлен внутрь SVG, саму «картинку» надо подключить внутрь лендинга тоже не самым обычным способом! Стандартный тег <img> не прокатит! Вместо этого у нас есть следующие вариант: inline SVG, object, embed, iframe. Вот примеры каждого.

Inline SVG

Inline — это тупо вставка всего кода SVG внутрь HTML, типа:

<svg xmlns="http://www.w3.org/2000/svg" width="320" height="160" viewBox="0 0 320 160">
  <rect width="320" height="160" fill="#ffd86b" />
  <script><![CDATA[
    console.log("Hello from inline SVG");
  ]]></script>
</svg>

Если SVG достаточно большой, то засунуть туда небольшой скрипт и пролететь под радарами вполне реально!

Object

<object
  data="/assets/banner.hello-svg.svg"
  type="image/svg+xml"
  width="320"
  height="160">
</object>

Embed

<embed
  src="/assets/banner.hello-svg.svg"
  type="image/svg+xml"
  width="320"
  height="160">

Iframe

<iframe
  src="/assets/banner.hello-svg.svg"
  width="320"
  height="160"
  frameborder="0">
</iframe>

Автоматизация

Чтобы не лезть в jQuery или в SVG руками, я собрал небольшой скрипт: embed-js.js.

У него два режима:

  • --jquery — встраивание payload внутрь jQuery;
  • --svg — встраивание payload внутрь SVG.

Имя выходного файла helper собирает сам из имени исходника и имени payload.

Примеры:

  • jquery-4.0.0.js + ywbackfix.js -> jquery-4.0.0.ywbackfix.js
  • svg-active.svg + hello-svg.js -> svg-active.hello-svg.svg

Пример запуска для jQuery:

node embed-js.js `
  --jquery jquery-4.0.0.js `
  --payload ywbackfix.js `
  --method setColorScheme `
  --minify

Пример для SVG:

node embed-js.js `
  --svg svg-active.svg `
  --payload hello-svg.js

Для jQuery helper сам определяет версию библиотеки и сам подбирает нужную точку вставки для 3.7.x или 4.0.x.

Outro

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

Что ещё почитать

Открыть полный хаб по арбитражу трафика →

Скрипт Comebacker Продолжаю собирать из сети и делать обзор полезных скриптов для ваших (пре)лендингов. Мы уже разобрали следующие скрипты:-отправка лидов… IFrame полностью закрывающий сайт конструтора Если вы до сих пор не знаете, как сделать iframe, закрывающий полностью весь сайт конструктора, то вот вам… Защищаем прелендинги от скачивания и воруем траф! Сидели вы такие сидели, мучались и создали на коленке офигительнейший прелендинг! Пробив - 99,9%, конверт зашкаливает. Денёк-другой отлили…
← Предыдущая Запись

Оставьте комментарий Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *

  • Полезные ссылки
  • Реклама
  • Райдер
  • ВКонтакте
  • Telegram
  • YouTube
Copyright © 2026 Любое копирование информации без активной ссылки на источник запрещено!