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

Василий Ш.

Agile против «водопада»

Переговоры с заказчиком о разработке сайта castlerock.ru мы начали в августе 2016 года. Разместили новую версию на боевом сервере в августе 2017. Создание сайта заняло 1 год. Можно было и быстрее, но всем хотелось довести магазин до идеального состояния.

Это долго. Если бы мы выполняли проект по «традиционной» схеме «водопада» (концепция, полное ТЗ, весь дизайн, вся верстка, программирование, приемка), скорее всего, до конца марафона не дошли бы ни мы, ни заказчик. У нас бы разошлись картины мира, ожидания результата, и готовый сайт никому бы не понравился.

Это самый распространенный риск при долгой разработке.

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

Все стадии мы проходили в тесном контакте с заказчиком. Нам удалось сохранить полное понимание — где мы, какой следующей шаг, что будет в итоге. А еще мы оперативно реагировали на внешние изменения — закон о персональных данных, онлайн-кассы и другое.

Что получилось, описано в нашем портфолио. А сейчас расскажем о «происшествиях».

Вирус на сервере разработки!

Мы выполняли переработку уже существующего сайта, а не разработку с нуля, поэтому нами была скопирована существующая версия сайта и размещена на нашем сервере. Изменения применялись к этой копии.

Исходная версия сайта была разработана в 2012 году, а самые-самые первые версии — еще раньше.

Аудит безопасности мы не проводили: раз код будет переписан, разумно проверить ресурс уже после обновлений, правок, добавления новых функций. Оказалось, что старый сайт был заражён вирусом. Для мобильных устройств и определенных операторов при некоторых условиях происходила переадресация на сторонние сайты. Там встречалась платная мобильная подписка, платные «опции», «замечательные» картинки и баннеры.

Как только клиент сообщил нам о существовании вируса, мы его нашли и удалили. Всё было хорошо. Через две недели клиент снова сообщил нам о вирусной активности — сразу стало нехорошо, потому что ни по старому расположению, ни по поиску по коду вирус не обнаруживался. Но он был. И мы даже наблюдали ту же вирусную активность на собственном сервере на сайте в разработке. Это фиаско. Вирус мы скопировали и себе.

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

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

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

Система оплаты Intellectmoney: анализ протокола на боевых платежах.

По бизнес-соображениям клиент хотел использовать систему оплаты Intellectmoney. Казалось бы — проблем нет — есть модуль для Битрикса, подключай, настраивай, что может пойти не так?

Протестировали платежи. Платежи проходили. Сколько нужно таких тестов? Мы попробовали большую оплату, маленькую, заказ с доставкой почтой и курьером, много товаров в заказе, 1 товар, из одного раздела каталога и из другого. Всё работает.

Разработчиков Intellectmoney мы явно недооценили. Они сумели создать систему, скрывающую баги до последнего. В качестве иллюстрации:


По мере появления ошибок оплаты, нами было выявлено 12 сценариев, полностью препятствующих проведению платежа. Например, любой товар можно было купить, но только не содержащий в названии двойных кавычек — они не экранировались и «ломали» модуль. Это один из самых простых вариантов. Не проходили частичные оплаты при некоторых условиях; выставлялись не те статусы заказам; оказалось невозможным оплатить заказ, если он сделан в 23:58…

Ситуация усугублялась тем, что клиент выбрал проведение онлайн-чеков средствами Intellectmoney. Количество ошибок возрастало.

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

Что будет с этим модулем дальше — неясно, обновить его теперь, понятное дело, нельзя — при обновлении наши правки удалятся. А новые версии ставить просто страшно.

Система оплаты для интернет-магазина — не менее важная составляющая, чем весь каталог товаров. Её нужно выбирать очень внимательно, и ориентироваться не только на удерживаемую комиссию.

Магазин украли! Целиком!

С запуском сайта на бою, наша работа не закончилась — мы продолжаем развивать и улучшать проект, сайт находится на нашей поддержке. Подключена аналитика, отслеживаются переходы на страницу 404, происходит много другого. В определенный момент мы заметили показы в метрике не по нашему домену: zahodi.online

Открыв сайт мы увидели точную копию нашего ресурса. А в метрике наблюдали естественные посещения из поисковых систем.

Помучавшись и постучавшись в админку, решили открыть лог-файл, доступный по секретной уникальной ссылке, которая нигде не светилась. Лог-файл открылся. То есть, была скопирована не только публичная часть, а действительно весь сайт?

Как вообще копия «утекла»? После истории с вирусом безопасность была максимально повышена.

В ходе исследования обнаружилось, что ситуация не настолько патовая. Это был парсер. При каждом обращении к адресам на домене zahodi.online, злоумышленники переадресовывали запрос на наш боевой сайт castlerock.ru, делал копию и показывал ее уже у себя. Лог-файл открылся именно потому, что мы его запросили явным образом.

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

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

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

О хорошем: восстановление поискового трафика

А стоило год делать новую версию магазина? Он был, приносил деньги — новая версия лучше?

Важно для дальнейшего объяснения: адреса страниц были изменены полностью — раньше не было ЧПУ. Уцелели по старым адресам такие важные разделы, как /about/. Кроме того, мы подключили защищенное соединение https.

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

Просмотры сайта, однако, возросли сразу же после релиза.


Поисковый трафик увеличился — смотри на яндекс, желтую линию — через два c половиной месяца.


Конверсия в заказ выросла в 3 раза. Это самое главное и важное.


Приходите к нам

Мы добились следующих бизнес-результатов — количество заказов увеличилось, доход магазина вырос, лояльность аудитория повысилась из-за улучшения быстродействия сайта и современного дизайна.

Сотрудничество продолжается и магазин castlerock.ru будет совершенствоваться.

А вы можете заполнить заявку на разработку сайта под этим постом.

Оцените статью
06.02.2018
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

Статьи по теме

Как b2b-платформа передает в 1С данные по новым контрагентам В этой статье мы расскажем, что происходит после того, как клиент зарегистрировал в б2б-кабинете новое юридическое лицо и сделал заказ, а также покажем, как...
Автоматизация и оптимизация бизнес-процессов — лонгрид, чтобы не запутаться Статья будет полезна всем, кто хочет улучшить эффективность своего бизнеса или узнать больше о возможностях автоматизации бизнес-процессов для повышения ко...
10 обязательных задач поддержки сайта на БитриксСтатья посвящена организации поддержки сайтов на Битрикс. Здесь не только про решение технических проблем и устранение багов. Здесь про развитие живых проектов...
B2B-SaaS или B2B-система (платформа+CRM) на вашем сервере: плюс и минусы, что выбрать? Введение Эта статья для коммерческих директоров, руководителей отделов продаж производственных и оптово-торговых компаний, которые ищут инструменты для ро...
Обзор международных исследований о тенденциях развития B2B-сегмента Важность темы — рост B2B-продаж в онлайне В современном бизнесе наблюдается стремительный переход в online оптовых продаж. Это стало одной из ключевых тен...
Несколько способов сделать оптовый заказ на портале — Обновление B2B-платформы (v2.0) Коллеги, спешим поделиться важной новостью! Мы обновили один из наших флагманских продуктов — готовую платформу оптовых продаж. B2B-платформа v2.0 сочетает...
Мы работаем по одному из двух форматов:
  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).
ИНТЕРВОЛГА предоставляет:
  • регулярные онлайн-планерки с заказчиком;
  • квалифицированных специалистов;
  • организованную команду (находятся в одном помещении, что упрощает решение рабочих вопросов);
  • полную прозрачность и регулярность отчетов о результатах.
Ключевые услуги:
  • нагруженный интернет-магазин;
  • личный кабинет;
  • оптовые продажи — B2B-платформа;
  • маркетплейс;
  • технический аудит сайта;
  • Битрикс24 — корпоративные HR-порталы;
  • Битрикс24 — построение CRM-системы;
  • Битрикс24 — личные кабинеты сотрудников;
  • Битрикс24 — аудит портала;
  • 1С — интеграция с другими системами;
  • 1С — доработка системы;
  • маркетинг — комплексное интернет-продвижение;
  • маркетинг — продвижение для B2B.
Хотите получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишитесь на рассылку — спамить не будем