PunchUNIUYO to monetise sports with new policy — VCESPN DeportesMax, el más rápido en tercera práctica en Bakú; Checo luce fuerteThe Jerusalem PostGov't warns against bringing Four Species into Israel without authorization ahead of SukkotInquirer2028 polls survey: Sara-Robin 12 points ahead of Leni-Bam tandem — OCTADaily MaverickEDUCATION: R6,600 a month to catch up: Inside SA’s costly private tutoring marketCNN TürkSermaye piyasası soruşturmasında yeni gelişme: 19 tutuklamaUOLRússia tenta criar alternativa à Starlink após perder acesso à rede de Elon MuskVarietyBlock the Merger Coalition Asks Court to Reject Paramount’s Settlement With States Over Warner Bros. DealWirtualna PolskaOdjechał samochodem osobowym. Zaginął 12-latek, policja z apelemThe IndependentDyfed-Powys Police hit by cyber attack as information at riskDaily MailBreakthrough brain cancer test cuts diagnosis from weeks to hours: 'Huge leap forward for patients'RapplerCarlos Yulo falls short of parallel bars medal, concludes stellar Asian Games
The Daily Newsstand · Free, Always
Friday, September 25, 2026

149 заявок мимо CRM и скрипт, который сбрасывал пароль админа

Translate

Пароль администратора менялся сам. Месяц внутри восьми сайтов на одной установке Битрикса

Уровень сложностиСредний

Время на прочтение13 мин

Охват и читатели343

Кейс

Мне достались восемь сайтов на одной установке «1С-Битрикс: Управление сайтом». Это каталог корпоративного ИТ-оборудования и софта отечественного производства. В группе главный сайт, пять тематических поддоменов (серверы, системы хранения данных, рабочие станции, источники бесперебойного питания, сеть) и два старых сайта: один теперь отдаёт редирект на главный, второй стал архивным слепком.

Я занимался маркетингом этих сайтов, и начиналось всё с двух странностей. Пароль администратора время от времени «менялся сам». Каталог полгода стоял без обновлений, потому что парсер работал «по подписке», а за продолжение подрядчик хотел денег. Основная работа заняла около трёх недель и ушла далеко от маркетинга.

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

Ниже по порядку: что нашлось, что переделали, что сломали сами. В конце чек-лист на вечер для тех, у кого похожая установка.

Главная находка разбора

Главная находка разбора

Про данные

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

Что было на входе

Картину собирали первые полторы недели.

Восемь сайтов гоняли посетителя по кругу. Девять кнопок на главной вели на поддомены, меню и подвалы поддоменов вели обратно на страницу контактов главного сайта. Человек из поиска уходил с сайта, на который пришёл. А приходил он как раз на поддомены. За три недели замера поддомен рабочих станций получил 1228 переходов из поиска, серверов 558, сети 448, источников питания (ИБП) 338, систем хранения (СХД) 183, главный сайт 127. Вся группа давала около 3000 визитов в месяц, из них 79 % из поиска и около 1 % из рекламы.

Путь посетителя по восьми сайтам

Путь посетителя по восьми сайтам

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

Реклама вела на витрину без формы. За квартал до разбора Рекламная сеть Яндекса привела на главную 6738 визитов. На главной не было ни формы, ни цели.

Заявки жили в почте. За последний год пришло 149 заявок, около 15 в месяц. Они уходили письмами на личные ящики двух сотрудников, а форма обратного звонка отправляла их на ящик студии, которая разработала шаблон. В CRM (Битрикс24) не попала ни одна. Текст заявок хранился только в письмах, из базы сайта его уже не восстановить.

Шаблон стоял в том виде, в каком его купили. В каталоге главного сайта лежали демо-товары с ценами: айфоны, велосипеды, смартфон с названием самого шаблона. В меню были пункты «Ремонт квартир» и «Фотосессии». Шесть каталогов отдавали canonical на демо-домен разработчика шаблона. Характеристики товаров не выводились вообще. Настоящие товары жили только на поддоменах.

Карта сайта не обновлялась почти год. В ней было шесть адресов на весь каталог. В индексе Яндекса не нашлось ни одной карточки товара.

Резервных копий не было больше года, а диск был заполнен на 97 %. Архив весил 7 ГБ при квоте облака «1С-Битрикс» 4 ГБ. Выгрузка падала с ошибкой 620, процесс умирал, старые копии не удалялись и занимали место.

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

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

Пароль, который менялся сам

Пароль администратора время от времени переставал подходить. Причину нашли на второй неделе разбора, поиск занял три дня.

В веб-корне в папке /ftp/ лежал PHP-файл, рядом в /ftp/import/ его копия. Открытие адреса файла в браузере сбрасывало пароль пользователя с ID 1, то есть главного администратора, на фиксированное значение.

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

Архив журнала передач FTP

Архив журнала передач FTP

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

Что сделали:

  • оба файла вынесли за пределы веб-корня, их адреса отдают 404;

  • следом убрали из веб-корня всю папку /ftp;

  • включили журнал событий безопасности: входы, смена пароля, изменения прав;

  • собрали отчёт по инциденту со всеми доказательствами.

Скрипт пролежал в веб-корне больше четырёх месяцев, а оба срабатывания пришлись на период, за который журналов веб-сервера уже нет

Скрипт пролежал в веб-корне больше четырёх месяцев, а оба срабатывания пришлись на период, за который журналов веб-сервера уже нет

Что ещё лежало в открытом доступе

Что было открыто наружу

Что сделали

Полные бэкапы с дампом базы в /bitrix/backup/ скачивались по прямой ссылке

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

XML старого парсера с ФИО, должностями, ИНН и телефонами руководителей предприятий, около 38 МБ в /upload/

Вынесено в архив за пределами веб-корня

Исходники PHP через копии *.bak-<дата> рядом с шаблонами

Закрыто правилом в .htaccess на всех сайтах, сами копии вынесены

Семь отладочных скриптов миграции с отключённой проверкой прав

Убраны

Заявки клиентов на ящик студии, разработавшей шаблон

Все получатели заменены на общий ящик компании

С бэкапами поступили просто. Выгрузку в облако «1С-Битрикс» заменили сохранением на локальный диск: копия раз в двое суток, хранятся две последние. После чистки диск занят на 56 %.

Ещё одна находка того же рода. Google Analytics и Google Tag Manager стояли на четырёх доменах и передавали данные за рубеж, а уведомления в Роскомнадзор не было. Их сняли, скрипт отката лежит на сервере.

Резервное копирование на момент разбора

Резервное копирование на момент разбора

Парсер «по подписке»

Слово «парсер» здесь с натяжкой. Это была связка из двух половин.

Первая половина, внешний сборщик, обходил реестр Минпромторга на ГИСП (государственной информационной системе промышленности) и собирал XML с товарами, предприятиями и картинками. Чем он работал и кто им управлял, установить не удалось. Единственный след остался в имени FTP-аккаунта: оно намекало на программу для автоматизации действий в браузере. Файлы приходили по FTP.

Вторая половина, приёмник, была покупным модулем импорта из XML с Маркетплейса Битрикса. Подписка на его обновления и техподдержку давно истекла, об этом висел баннер в админке. Запускался импорт только руками из админки.

Снаружи это называлось «парсер по подписке, за продолжение подрядчик хочет денег». На сервере это выглядело так: у модуля истекла подписка, а сборщика у компании нет. Счетов и переписки с подрядчиком в моих материалах не было, поэтому дальше этого я не иду.

Что было не так со связкой:

  • главный сайт она не наполняла вовсе, профили импорта были заведены только у пяти поддоменов;

  • 39 запусков за десять месяцев, все вручную, потом полгода каталог не обновлялся ничем;

  • модуль не замечает, что позиция выбыла из реестра, и умеет только погасить на сайте всё, чего нет в очередном файле;

  • через тот же FTP-аккаунт залит скрипт сброса пароля;

  • XML с персональными данными руководителей лежали в открытом доступе.

Парсер по подписке изнутри

Парсер по подписке изнутри

У всех двадцати профилей модуля стоял флаг «деактивировать отсутствующие в файле». Ручной запуск любого из них погасил бы часть каталога. Такой модуль опасно просто оставлять на сервере: однажды кто-то нажмёт «Запустить», чтобы «обновить каталог».

Свой парсер: ночная сверка с тремя реестрами

Теперь каталог обновляют свои PHP-скрипты внутри сайта. Их папка закрыта от HTTP. Парсер работает сам, без человека и без нейросетей.

Источников три:

Реестр

Ведомство

Что питает

Единый реестр российской радиоэлектронной продукции (ЕРРРП), постановление правительства № 878

Минпромторг, ГИСП

Основной источник: серверы, СХД, сеть, рабочие станции, ИБП, видеонаблюдение

Реестр промышленной продукции, постановление № 719

Минпромторг, ГИСП

861 карточка, которой нет в ЕРРРП. Разовая сверка, в ночной цикл не входит

Единый реестр российского ПО, постановление № 1236

Минцифры

Раздел «Программное обеспечение»

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

  1. Берёт выгрузку реестра: скачивает сам или забирает файл, который положили в папку для входящих.

  2. Находит каждую позицию каталога по номеру реестровой записи.

  3. Обновляет срок действия записи, коды по классификаторам продукции ОКПД2 и ТН ВЭД, ТУ или ГОСТ, баллы локализации.

  4. Ставит «Статус в реестре»: «В реестре Минпромторга», «В реестре Минпромторга (ПП № 719)», «Срок реестровой записи истёк ДД.ММ.ГГГГ», «Реестровая запись прекращена ДД.ММ.ГГГГ», «В реестре российского ПО (Минцифры)».

  5. Заводит карточки на новые позиции, только в разделы из меню и только через стоп-лист.

Просроченные карточки остаются на сайте с пометкой. Это живые страницы в поиске, и я решил их сохранить.

Защиты от собственных ошибок:

  • сверка никогда не отключает товары, которых нет в файле, этот режим выключен намертво;

  • если совпадений ноль, скорее всего, взята не та колонка, и скрипт не заводит ни одной карточки;

  • строки-дубли сворачиваются по номеру записи;

  • статусы пересчитываются по календарю от даты последней выгрузки;

  • непрофильное отсекает стоп-лист: учебное оборудование, светильники, робонаборы и подобное.

По расписанию каждую ночь идут ротация бэкапов, сверка с ЕРРРП, перенос новых позиций на поддомены и пересборка карт сайта. Реестр ПО сверяется раз в неделю. Досылка заявок из очереди в CRM крутится весь день, раз в десять минут.

Один ночной прогон выглядит так. Сайт реестра отдал 64 666 записей, из них 59 269 уникальных позиций. В каталоге 11 106 товаров с номером реестра. С реестром совпали 10 245, все обновлены. Пометку «вне реестра» получили 1220, добавлено 2, отключено 0, ошибок 0. В каталог не пошли 16 459 позиций, отсеянных стоп-листом, 11 927 просроченных и 20 633, которые не подошли ни под одну категорию. Реестр ПО за один прогон обновляет 3170 карточек.

Ночной цикл: откуда берутся выгрузки и куда они уходят

Ночной цикл: откуда берутся выгрузки и куда они уходят

Самое хрупкое место здесь скачивание. Сайты реестров часто не пускают сервер: срабатывает защита от ботов ServicePipe. Поэтому на рабочем компьютере в офисе стоит задача Windows: раз в две недели Яндекс Браузер через Playwright открывает страницы реестров, нажимает кнопки выгрузки и заливает файлы на сервер. Компьютер должен быть включён, а пользователь должен быть залогинен в Windows.

Каталог

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

Объём менялся каждый день: 5970 уникальных товаров до парсера, 9664 после ЕРРРП и реестра № 719, 12 833 после раздела софта, 11 187 после снятия учебного оборудования. После чистки в каталоге 11 106 товаров с номером реестра и 3170 карточек ПО.

Снимали непрофильное в два захода: 5884 карточки учебного оборудования, 192 по стоп-листу, 27 банкоматов. При этом всплыла опция «показывать снятые товары», которая на всех восьми сайтах стояла в положении «Да». Снятые карточки продолжали открываться по прямой ссылке и сидели в индексе. Опцию выключили, теперь они отдают 404.

В карточке товара теперь выводятся реестровые характеристики: статус, номер, срок, ОКПД2, ТН ВЭД, ТУ или ГОСТ, баллы локализации, у ПО класс, правообладатель, ИНН и дата решения. Кнопка «Запросить цену» открывает форму и передаёт название товара в скрытое поле, а оттуда в заявку. Цен и сортировки по цене на сайте нет, у реальных товаров цен нет. Плашку «Под заказ» убрали из всех пяти мест, где она выводилась.

С производителями пришлось повозиться. Свойство «Бренд» проставили 9533 товарам, потом перепривязали к производителям 3434 товара и завели 195 разделов-производителей, склеили 55 разделов-дублей, почистили 3694 адреса с техническим префиксом и завели 3749 правил 301 со старых адресов. Указатель брендов стал одной страницей на 605 марок, в нём только марки, у которых есть товары.

Заявки: из почтовых ящиков в CRM

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

Следом сайты развели. На пяти рабочих поддоменах скрипт завёл свои страницы «О компании», «Контакты», четыре страницы для разных аудиторий и свои формы. Ссылки на соседние домены убрали из меню, подвала, настроек подвала и текстов блоков. На главной девять ссылок на поддомены заменили разделами её собственного каталога.

Каждый домен получил свой счётчик Метрики. С целями вышло интереснее. Автоцель «Отправка формы» на этих сайтах считала поиск по каталогу, потому что поиск тоже форма, а заявок она не видела. Её отправили в архив на всех счётчиках. Вместо неё завели цель «Заявка отправлена» по посещению страницы /thanks/. Эта страница появилась на всех восьми сайтах, переход на неё прописан 28 формам главного сайта и 212 формам и блокам поддоменов. От индексации она закрыта.

Путь заявки один на шести рабочих сайтах, код общий для всей установки:

посетитель заходит на сайт
  └─ кука с каналом и страницей входа на 30 дней
       поиск Яндекса / поиск Google / другой поиск / прямой заход /
       переход с сайта / реклама Яндекса / реклама Google
       реклама определяется по yclid, gclid, utm_medium=cpc
отправляет форму
  └─ капча и поля-ловушки; на главном сайте ещё проверка:
       без ИНН и с общедоступной почты (mail.ru, gmail и т. п.) заявка не проходит
  └─ обработчик события OnBeforeEventAdd создаёт лид в Битрикс24
       портал не ответил – заявка ложится в очередь,
       по расписанию раз в 10 минут досылается
  └─ через 3,3 с переход на /thanks/ (цель Метрики), ещё через 8 с на главную
Путь заявки от первого захода до лида в CRM

Путь заявки от первого захода до лида в CRM

Лид приходит в едином формате со всех сайтов:

Поле

Что в нём

Название

[<домен> · <канал>] Заявка – <имя> · <товар>

Источник

Свой код для SEO Яндекса, свой для SEO Google, остальное под общим кодом «Заявка с сайта»

UTM

каталог / канал / домен

Комментарий

площадка, канал, форма, товар, адрес карточки, страница входа, все поля формы

Ответственный

один менеджер на все сайты

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

Очередь уже пригодилась: однажды портал лежал с ночи, заявка провисела в очереди 4,5 часа и утром ушла в CRM.

Для рекламы, прямых заходов и переходов с других сайтов своих пунктов в справочнике «Источник» нет. Входящему вебхуку, через который сайт пишет в CRM, не хватает прав на изменение справочников, а завести пункты может только администратор портала. Эти каналы видны в названии и комментарии лида, код у них общий.

Новые лиды бот приносит в рабочую группу Telegram, в рабочие часы с 09:00 до 18:00 по Москве.

Дизайн, из которого пришлось вычистить нейрослоп

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

Первая версия прототипа получилась узнаваемо нейросетевой. Я вычеркнул из неё надзаголовки над секциями, сетчатые подложки, радиальные засветы, цветные боковые плашки и кнопку «Консультация» в шапке. Всё это одним словом: нейрослоп.

Приёмка первой версии прототипа

Приёмка первой версии прототипа

Через два дня на боевом сайте была своя вёрстка у главной, шапки, мобильной шапки, подвала, 404, поиска, страниц «О компании», «Контакты», «Партнёрам», пяти правовых страниц и /thanks/. Это физические файлы в веб-корне, конструктор лендингов шаблона до них не дотягивается. Каталог, разделы, карточка, новости и бренды получили свой слой CSS и JS поверх разметки шаблона, шаблоны компонентов переписаны частично. Сам модуль шаблона остался движком: формы, модальные окна, каталог, меню, SEO-заголовки. Его вендорские файлы не правили. Поддомены остались на старом шаблоне.

Выкладка правки: файл из папки релиза, scp, php -l, копия в шаблон, сброс кеша, проверка через curl. После каждой пересборки CSS или JS поднимается ?v= в header.php, иначе браузеры месяц показывают старое.

SEO

  • Карта сайта пересобирается каждое утро. Было шесть адресов каталога, после пересборки стало 13 636.

  • В Яндекс Вебмастере подтверждены девять сайтов, в Google Search Console девять ресурсов. Файл подтверждения Google один на весь аккаунт и лежит во всех веб-корнях, удалять его нельзя.

  • canonical пагинации и фильтров ведёт на раздел, UTM-метки в него не попадают. canonical на демо-домен разработчика шаблона снят.

  • noindex получили 144 пустых раздела, 68 пустых брендов и служебные страницы: поиск, демо-блог, демо-акции, корзина, авторизация, сравнение.

  • Исправлены og:image, цена «−1» в разметке Offer, двойные хлебные крошки, в robots.txt добавлен Clean-param.

  • Семантическое ядро: 299 запросов в 14 кластерах. Самые частотные запросы в нише нормативные: «реестр минпромторга» около 49,5 тыс. в месяц, «реестровая запись» около 30,9 тыс.

Отдельно для тех, кто работает с Битриксом. Исключения из карты сайта вписали прямо в b_seo_sitemap.SETTINGS. Если после этого пересохранить форму настроек карты в админке, исключения сотрутся.

Что пошло не так у меня

В cron стоял не тот скрипт. Аудит парсера через три дня после запуска показал, что по расписанию запускается другой файл. Исправили в тот же день.

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

Автоскачивание сломалось дважды подряд, и узнал я об этом из лога. Первый запуск скачал оба реестра. Во втором не открылась вкладка. В третьем ЕРРРП не скачался по таймауту в 90 секунд, реестр ПО скачался. Выручил сервер: в ночь после третьего сбоя он сам скачал ЕРРРП с ГИСП. Если защита снова закроет сервер, свежих данных по оборудованию не будет. Уведомления о сбое скачивания в первой версии не было.

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

Больше половины карточек без картинок. В выгрузках реестров картинок нет, без фото 7083 карточки, 55 %.

Лид, который переписал кто-то другой. Один лид пришёл с поддомена серверов как «Прямой заход». Позже в CRM у него оказался код «SEO Google» и другое название. Код на сервере к тому моменту неделю не менялся. Кто и зачем поменял лид, я так и не выяснил.

Метки UTM есть у меньшинства лидов. На одном из срезов у 67 лидов из 83 меток не было. Пункт плана «писать в лид метки и адрес страницы входа» пока не сделан.

Что ещё впереди

Остались решения, которые упираются в SEO и в саму компанию:

  • спрос идёт по маркам, а страницы производителей названы по юрлицам;

  • у сетевого каталога два имени, и надо выбрать главное зеркало;

  • лендинги серверов и СХД конкурируют с разделами каталога за одни и те же запросы;

  • судьба двух старых сайтов и модуля импорта с опасными профилями.

Итог через полтора месяца

Было

Стало

Сайты

8 доменов ссылаются друг на друга

Каждый сайт автономен: свои страницы, формы, ноль ссылок на соседей

Метрика

1 общий счётчик, 0 своих целей

Свой счётчик у каждого домена и цель «Заявка отправлена»

Заявки

На личную почту и почту студии шаблона, в CRM 0

Каждая заявка лидом в CRM с доменом, каналом, формой и товаром, очередь на случай падения

Парсер

Покупной модуль с истёкшей подпиской и чужой сборщик, запуск руками, последний полгода назад

Свои скрипты по расписанию каждую ночь, три реестра

Каталог главного сайта

Демо-товары шаблона

11 106 карточек с номером реестра и статусом

Безопасность

Скрипт сброса пароля в веб-корне, бэкапы и XML с персональными данными открыты

Скрипт убран, бэкапы и XML вынесены из публичных папок

О заявках судить рано. Цикл сделки в нише измеряется месяцами, а до разбора сайты даже не знали, откуда пришёл человек. Сейчас измеримо другое: каждая заявка видна в CRM с доменом и каналом, и через квартал можно будет считать, какой из восьми сайтов работает.

Чек-лист: что проверить на своём Битриксе за вечер

Что проверить

Как

Признак проблемы

Чужие PHP-файлы в веб-корне

поиск по дате изменения, особенно в /ftp/, /upload/, /import/

файл, который никто из команды не заливал

Кто пишет на сервер

список FTP-аккаунтов, журнал xferlog

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

Бэкапы снаружи

curl -I на архив в /bitrix/backup/

ответ 200

Копии исходников

curl на header.php.bak и похожие рядом с шаблоном

браузер отдаёт PHP текстом

Выгрузки импорта

содержимое /upload/

XML с ФИО, ИНН, телефонами

Получатели форм

почтовые шаблоны и настройки форм

личные ящики и адреса разработчика шаблона

Модули импорта

профили и их флаги

«деактивировать отсутствующие в файле» у профиля, который никто не запускает

Снятые товары

опция показа снятых товаров в каталоге

снятая карточка открывается по ссылке

Автоцели Метрики

какие действия попадают в «Отправку формы»

цель срабатывает на поиске

Демо-наследство

canonical, меню, каталог

домен разработчика шаблона, «Ремонт квартир»

Карта сайта

число адресов против числа товаров

шесть адресов на тысячи товаров

Резервные копии

дата последней удачной копии, заполнение диска

копии нет месяцами, диск под 100 %

Модуль безопасности

какие защиты включены, история паролей администратора

всё выключено, пароль менялся без вас

Утверждение, с которым можно спорить

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

Вопрос «кто может писать на мой сервер» владелец сайта должен закрывать за минуту. Здесь ответ искали три дня, а симптом жил три месяца: пароль меняется сам.

View the original on Хабр →

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.