Содержимое страницы

Мониторинг изменений на сайте

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

Зачем отслеживать изменения страницы сайта

Сайт открывается, отдаёт код 200 и выглядит живым, а в футере уже неделю чужая ссылка на казино, в форме оплаты подменены реквизиты, а на главной вместо текста — «hacked by». Такие вещи мониторинг доступности не ловит: с точки зрения HTTP всё в порядке.

Контроль содержимого сравнивает страницу с эталоном при каждой проверке. Изменилась хоть одна буква вне игнорируемых фрагментов — вы получаете уведомление. Это защита от дефейса, внедрённых скриптов, «тихого» взлома через плагин CMS и от ошибок редактора, который случайно затёр важный блок.

Что проверяем

  • Хеш содержимого с игнорированием динамических фрагментов (токены, дата, счётчики)
  • Первое изменение фиксируется как эталон, дальнейшие — уведомление
  • Работает вместе с мониторингом доступности
  • История снимков в кабинете

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

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

Если содержимое изменилось, приходит уведомление с размером страницы «было → стало», а новый слепок становится эталоном. Так плановое обновление сайта даёт одно сообщение, а не поток тревог. Проверка выполняется с основной точки с интервалом от 5 минут (рекомендуем 15) и стоит 0,01 ₽.

Что приходит в уведомлении

Telegramтолько что
⚠️ Главная страница: содержимое страницы изменилось
https://example.ru/
Было 48 213 → стало 48 977 симв.

Открыть монитор →

Так выглядит сообщение о сбое; о восстановлении придёт отдельное — с длительностью простоя. Каналы: Telegram, MAX, email, SMS, звонок, webhook.

Параметры проверки

ПараметрОписание
Адрес страницыhttps://example.ru/
Игнорировать фрагменты (регулярки, по одной в строке)Динамические части: токены, счётчики, дата
User-Agent
Логин (Basic Auth)

Интервал — от 5 минут до 1 суток (рекомендуем 15 минут). Проверка выполняется с основной точки.

Защита от дефейса и взлома сайта: чем лучше самописного diff

  • Игнорирование динамических фрагментов по регулярным выражениям — без этого самописный diff шумит на каждом токене.
  • Работает вместе с проверкой доступности: если страница не открылась, вы получите сбой, а не ложное «изменилось».
  • Эталон хранится у нас, история изменений видна в кабинете.

Вопросы

Страница меняется при каждой загрузке — что делать?
Укажите регулярные выражения для фрагментов, которые нужно игнорировать: CSRF-токены, время, счётчики, рекламные блоки. Слепок считается уже после вырезания этих частей.
Уведомите ли вы о плановом обновлении сайта?
Да, один раз. После этого новый слепок становится эталоном, и следующие проверки сравниваются с ним.
Ловит ли проверка внедрённый JavaScript?
Да, если он попал в HTML страницы. Скрипты, подгружаемые с внешних адресов, проверяются по факту изменения тега, а не их содержимого.
Можно ли следить за конкретным фрагментом, а не всей страницей?
Используйте проверку доступности с условием «фраза должна присутствовать» или «отсутствовать» — это точнее для одного блока. Контроль содержимого — для всей страницы целиком.
Сколько стоит?
0,01 ₽ за проверку. Раз в 15 минут — 96 проверок в сутки, около 29 ₽ в месяц.