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

Василий Ш.
Подписаться

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
Понравилась статья?
Поделитесь ссылкой с друзьями и коллегами!

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

05.08.2022
Руководство по разработке и запуску B2B-платформы — 13 ключевых моментовС каждым новым поколением доля людей, для которых покупка онлайн становится нормой, растёт. Покупатель уже не хочет тратить своё время на лишние действия, он хо...
23.06.2022
Увеличение скорости обновления информации в 100 раз за счет миграции данных из самописного хранилища на базе СУБД PostgreSQL Ранее мы уже описывали архитектуру мультиязычного сайта с большим количеством иностранных дилеров для компании Levenhuk. В этой статье рассказываем, как реш...
23.05.2022
Как увеличить конверсию интернет-магазина обуви до 3.9% Вступление Начну с конца. Вот таких показателей мы достигли: начинали с таких: Если интрига сработала, и вопрос “Как увеличить конверсию интернет-...
18.05.2022
Обмен контрагентами между 1С и сайтом с сохранением структуры Партнеров, Контрагентов, Юридических лиц и Контактов O чем речь? Мы сделали B2B-Платформу для предприятий с партнерами-оптовиками и задачами автоматизации торговли. Некоторые Пользовательские сц...
18.05.2022
Чат-бот Программы Лояльности в TelegramЛояльность клиентов — важный показатель в деятельности любой организации. Чтобы покупатель оставался доволен продукцией, важно внимание и забота со стороны комп...
13.05.2022
Кейс: Личный кабинет партнера крупнейшего поставщика медицинских изделий В 2019 году к нам обратилась крупная компания, занимающаяся поставкой медицинских изделий. Причина обращения была типична для бизнеса, работающего с крупно...

Мы работаем по одному из двух форматов:

  • аренда команды (от 2 человек, не менее 3 месяцев);
  • итерации с фиксированной ценой (1-3 месяца длительностью).

ИНТЕРВОЛГА предоставляет:

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

Для доработок и развития мы предлагаем формат 100 часов в месяц. Что можно сделать за это время:

  • новые нетиповые страницы или раздел;
  • 2 отчета с индивидуальными настройками;
  • 3-5 веб-сервисов интеграции;
  • замудренный калькулятор и т.п.

Поддержка «чтобы все работало как часы» стоит 45 тысяч рублей в месяц и описана тут.

Хочешь получать лучшие статьи от INTERVOLGA раз в месяц?
Подпишись на рассылку — спамить не будем