Разделы документации

Защита локальных страниц

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

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

Внимание.

Инструкция относится к выпуску 0.1.0-beta.20261101.1. Сначала сверьте версию своей установки. Защита прямых ссылок включается отдельно после проверок; восстановление PHP описывает потерю состояния, продолжение исходного задания и узкую установку ранее закреплённого кандидата при здоровом PHP. Последний случай не сбрасывает epoch или сессии.

Прямые ссылки и предпросмотр

Допущенный переход получает ограниченное посещение с cookie. В строгом режиме скопированный адрес без этой cookie не открывает страницу. Посещение привязано к домену и странице; срок — до 24 часов. Предпросмотр с выпуска 0.1.0-beta.20261102.1 тоже действует до 24 часов, в прежних версиях — до 5 минут. Для предпросмотра нужен отдельный домен трафика, отличный от домена панели.

Окно Доступ к файлам открывается из меню Ещё над редактором файлов страницы; до выпуска 0.1.0-beta.20261102.1 — отдельной кнопкой там же. В Доступ к файлам браузерные ресурсы доступны по умолчанию, а конфигурации, резервные файлы и журналы закрыты. Архив ZIP и нестандартные файлы разрешаются явно. Проверяйте результат по ссылке кампании, а не только в редакторе.

Кнопка Отозвать посещения закрывает ранее выданный доступ к этой странице. Используйте её осознанно: открытая форма тоже потеряет доступ.

С выпуска 0.1.0-beta.20261102.1 предпросмотр сотрудника закрывается сразу, когда он теряет право на страницу: при сохранении его прав, смене роли или логина, удалении сотрудника и снятии выданного ему доступа к офферу или лендингу. Посещения посетителей и предпросмотры других сотрудников при этом не закрываются. Подробности — Предпросмотр защищённой страницы до 24 часов. В прежних версиях изменение прав не отзывало выданный предпросмотр — он действовал до конца своего срока.

Права сотрудника

В окне Права раздела Команда на вкладке Страницы, в блоке Файлы лендингов и офферов, доступны пять независимых настроек:

НастройкаЧто разрешает
ПредпросмотрПросмотр страницы и диагностики
ИсходникиСписок и чтение файлов, версии и манифест
РедактированиеИзменение и публикацию файлов
Скачивание ZIPЭкспорт страницы архивом
Копирование страницыСоздание независимой копии

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

Можно разрешить баеру исходники и запретить редактирование и ZIP. Запрет исходников также закрывает редактирование, ZIP и копирование. Для выбора страницы в потоке права на исходники не нужны.

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

Открытая форма после изменения страницы

Защищённое посещение использует одну полную версию: HTML, PHP, include-файлы, обработчики, ресурсы и настройки доступа к файлам. После сохранения новые посещения получают новую версию, а уже открытая форма продолжает работать с прежней — даже если обработчик убран из нового варианта.

Старые снимки хранятся не менее 25 часов после снятия с публикации; активный снимок не удаляется. Это отдельный механизм от десяти версий в редакторе. Удаление страницы и отзыв посещений закрывают доступ; повторное создание того же ID его не восстанавливает.

Это правило действует для защищённых посещений. Старые прямые ссылки в переходном режиме не получают закреплённую версию задним числом. Сбой внешнего получателя, истечение срока посещения или явное восстановление после потери PHP-состояния могут помешать отправке. Recovery инвалидирует старые формы и не повторяет POST.

PHP-сессии защищённых посещений изолированы в private-пулах, а старые формы используют сохранённые работающие legacy-пулы. Снимок файлов не переносит сессию; смена PHP-пула также не переносит её состояние. Из старой непривязанной ссылки нельзя восстановить прежний снимок или исторический режим PHP с доступом в сеть. Перед активацией проверьте конкретную установку: PHP-сессии и временные файлы.

Данные формы и leads.php

Micator больше не создаёт и не дописывает собственные файловые журналы данных форм. Старый POST /api/v1/lead-file отвечает 200 ok без чтения тела и хранения данных. Такой ответ нужен для совместимости старых страниц и не подтверждает доставку заявки партнёрке.

Удаляются из рабочих каталогов и исключаются из копирования только старые журналы с точной сигнатурой Micator. Пользовательский PHP-обработчик с именем leads.php остаётся файлом страницы. Оригиналы архивов и резервные копии этим не очищаются.

Контракт /api/v1/lead, аналитика, CAPI и постбеки сохраняются. Если ваш собственный PHP пишет данные в файл или отправляет их получателю, это отдельное поведение вашего обработчика. Изменение не удаляет все персональные данные из всех интеграций.

Проверка перед публикацией

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

  1. Просмотрите замечания и назначение внешних адресов.
  2. Нажмите Отмена, чтобы оставить текущую публикацию без изменений.
  3. Если изменения ожидаемые, нажмите Проверил изменения — опубликовать.

Подтверждается только проверенный набор файлов. Если он изменился, потребуется новая проверка. Статический анализ не исполняет PHP/JS и не удаляет код автоматически. Вычисляемый адрес, файл кода больше 3 МиБ или более 200 замечаний обозначаются как неполная проверка. Отсутствие замечаний не гарантирует безопасность страницы.

С выпуска 0.1.0-beta.20261103.1 проверка предупреждает о ссылке на оффер в теге, который браузер загружает сам: «Ссылка на оффер в теге, который браузер загружает сам (<link>, <img>, <script>…). Каждый показ страницы засчитывался бы как переход на оффер. Используйте {offer} только в <a href> или action формы.» Замечание показывает HTML- или PHP-файл и строку первого такого места в нём. Оно появляется, когда адрес начинается с {offer}, {to} или {offer:ID} (в href — и с /?_lp=1) в тегах вроде <link rel="stylesheet">, <img>, <script src>, <video> или в CSS url(). О ссылках <a>, формах, <iframe> и meta refresh проверка не предупреждает: это переходы.

Перенесите ссылку в <a href> или action формы, проверьте остальные ссылки на оффер в этом файле и сохраните страницу снова. Если опубликовать как есть, трекер не засчитает такую загрузку переходом, но в старых браузерах каждый показ страницы будет LP-кликом. Проверка находит не все такие места — правила в разделе Где ставить ссылку перехода. При переносе Keitaro это замечание тоже требует подтверждения; в отчёте мастера и терминала оно называется offer-link-autoload.

При переносе Keitaro такой отчёт подтверждается до публикации страниц. При остановке с PAGE_REVIEW_REQUIRED просмотрите отчёт в мастере. В терминале micatorctl keitaro-import --step status покажет команду подтверждения с точным hash; после подтверждения повторите исходную команду установки или продолжите работу мастера. Архив заново распаковывать не нужно.

Диагностика

Кнопка Диагностика есть в строке локального лендинга или оффера, а в редакторе файлов — в меню Ещё; до выпуска 0.1.0-beta.20261102.1 — отдельной кнопкой над редактором. Диагностика показывает режим защиты, срок перехода, готовность версии и счётчики за последние 24 часовых интервала: ответы страниц и форм, ошибки PHP, истечение или отзыв посещения, отсутствие cookie и недоступность версии.

Телефон, имя, email, IP, click ID, cookie, адрес запроса и тело формы в эти счётчики не входят. Сырое сообщение PHP с данными формы не сохраняется в служебном логе. При отказе хранилища часть событий может отсутствовать; интерфейс показывает недоступность. Успешный HTTP-ответ формы сам по себе не доказывает, что заявку принял внешний сервис.

Если при входе по ссылке кампании защищённый доступ к выбранной локальной странице недоступен, трекер отвечает 503. Входящий клик, кампания, поток и рассчитанный расход сохраняются; клик с такой ошибкой не связывается с невыданным лендингом или оффером. При отказе в доступе к локальному офферу на переходе /clk новый LP-клик не записывается. Это правило учёта не снимает защиту и не повторяет отправку формы: метрики и расход при ошибке выдачи.

Включение и проверка

Обновление оставляет совместимый режим compat. Отдельная активация после проверки всех экземпляров запускает переход через 5 минут; ещё 48 часов сохраняются прямые пути и POST без защищённого посещения, затем включается strict. Такой POST, включая возврат на ссылку кампании, сохраняет прежний публичный контракт; он не подтверждает, что вкладка была открыта раньше. После старта перехода новые GET-посещения и защищённые запросы используют private-пулы. Повторная активация и перезапуск не продлевают окно. Запрос, принятый до крайнего срока, может завершиться после него; новый запрос к старому пути в strict закрыт.

Служба установки проверяет сохранённую привязку к работающим PHP-пулам и готовность перед активацией. После создания неизменяемого плана, включая пятиминутное ожидание старта, обновление и откат допускаются только на совместимые версии с сохранением закреплённой среды PHP. Возврат к старому приложению без поддержки перехода и любое восстановление из копии поверх этой установки блокируются. Перевод часов назад не снимает запрет. До создания плана и до любого recovery контроллер может разрешить возврат к предыдущей версии при сохранных привязках пулов. После recovery запрет старого несовместимого приложения и in-place restore остаётся независимо от наличия arm-плана. Требования подтверждения активации сохраняются.

Перед активацией администратор сервера должен проверить все экземпляры приложения, оба режима PHP, общий каталог страниц, HTTPS, CDN/кеш и прямой доступ к origin. Готовность службы установки не подтверждает эти внешние условия. Прежние процессы приложения, способные писать журналы, нужно остановить, затем повторить запуск нового admin для очистки возможного остатка журнала; закреплённые PHP-пулы продолжают работать.

В новом Go-приложении потеря, повреждение или подделка PHP-состояния закрывает исполнение до обработчика без повтора POST. Проверка пула может вернуть 503; старый или недействительный защищённый доступ — 404. Legacy-пулы получают runtime restart policy no без пересоздания: после перезапуска ОС старое Go не должно обслужить пустую сессию. Потерянные данные не восстанавливаются автоматически. Recovery — ручной php-recover владельца или автоматический после подтверждённой перезагрузки сервера — создаёт новое поколение PHP и навсегда закрывает legacy; все прежние grants и формы инвалидируются. Новый GET по ссылке кампании получает защищённое посещение даже в compat, а прямой GET на старый PHP-путь не обновляется автоматически. Исходные даты перехода не меняются: восстановление PHP и проверки завершения.

Проверьте на тестовом получателе: открытие кампании, изображения и скрипты, переход лендинг → оффер, обычную форму и ответ обработчика, форму в уже открытой вкладке после изменения страницы. Для возврата POST с другого сайта нужен HTTPS. После окончания перехода проверьте отказ по прямой ссылке в отдельном браузерном профиле. Приёмка архива не заменяет проверку конкретной установки, её LB/CDN и внешних обработчиков.

Администратор запускает redirect hosted-access status и redirect hosted-access preflight внутри действующего admin-контейнера с его рабочим окружением. Первую активацию выполняют только после успешного preflight. Отдельный подтверждённый повтор уже начатого arm описан ниже. После проверки всех условий команда:

bash
redirect hosted-access arm \
  --confirm-serving-inventory \
  --confirm-https-cache-bypass \
  --confirm-restore-floor \
  --confirm-php-protocol
redirect hosted-access status

Все четыре флага обязательны: это подтверждения оператора, которые программа не может заменить heartbeat-проверкой. До первой записи в общие хранилища root-контроллер закрепляет исходный неизменяемый план. Сохраните start, legacy_until и ID из status. Локальная копия, Redis и отметка завершения должны соответствовать этому плану. При промежуточной записи запрос может подождать до 2 секунд; при отсутствии согласованного набора выдача закрывается, а не возвращается в compat.

Повтор той же команды arm со всеми четырьмя подтверждениями может исправить только незавершённое отображение уже закреплённого root-плана в публичном состоянии. Он сохраняет тот же PHP epoch и план, не теряет здоровые сессии и не создаёт новые даты. Обычный status только читает состояние и ничего не чинит. Это не восстановление утраченного или противоречивого Redis/локального набора. Не удаляйте служебные записи и не запускайте php-recover вместо такого повтора arm: recovery явно принимает потерю сессий. Если исходные копии не согласуются, нужна проверка поддержки.

Отдельно ещё готовятся автоочистка и часовой пояс отчётов.

Обновлено Нужна помощь? ↗