• +7 (495) 648-57-90
  • +7 (8442) 95-99-99

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

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 будет совершенствоваться.

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

Оцените статью:
Заявка на разработку сайта

Вы можете войти, используя аккаунт одной из социальных сетей