Как испортить репутацию компании одним неверным решением

Я являюсь основателем и генеральным директором компании «Конгет». Мы разработали платформу для digital-маркетинга и аналитики. Весной 2019 года мы вышли на высоко-конкурентный рынок с нашими приложениями для лидогенерации на сайт, которые работают по технологии обратного звонка. Нашими основными клиентами стали маркетологи дилерских предприятий. У нас за плечами более 4-х лет опыта и вся наша команда ранее работала в этой сфере — на разных должностях в компании Коллкипер.

Я был со-основателем компании Коллкипер и работал на должности коммерческого директора в 2014-2018г. Когда вектор развития компании изменился и ее перспективы стали для меня неочевидны — я покинул компанию и мы с партнёрами создали «Конгет», используя весь свой опыт при разработке продукта.

31 мая 2019 г. во второй половине дня, мы заметили падение количества звонков с сайтов наших клиентов. Оперативно сработала наша поддержка клиентов, благодаря этому удалось быстро понять причину происходящего и правильно отреагировать. Вот как это было: мы зашли на один из сайтов нашего клиента, чтобы заказать тестовый звонок для проверки работы приложения и были удивлены тем, что при появлении нашего приложения, оно моментально закрылось. После массовой проверки сайтов клиентов, мы обнаружили, что на части сайтов все работало корректно. Таким образом мы выяснили, что проблема не носит глобальный характер.

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

Исходные данные: При нажатии на кнопку вызова виджета или срабатывании какого либо-триггера удаляется iframe Конгет из html разметки сайта.

Исследование:

  • Открыли консоль разработчика, в качестве примера используем сайт клиента.
  • Так как мы знаем, что iframe удаляется из html-разметки, то скорее всего, используется стандартный метод javascript removeChild как самый распространенный для удаления элементов.
  • Переопределим метод для того, чтобы убедиться что используется именно он.
  • Попытаемся вызвать виджет через кнопку и посмотрим на результат в консоли. Как видим — виджет успешно сработал и на экран вывелась надпись “Hello” несколько раз.
  • Теперь необходимо узнать какой код вызвал этот метод при нажатии на кнопку вызова виджета. Переопределим метод еще раз и выведем ошибку с описанием “Hello”. Мы видим, что источником вызовов является callkeeper.js 11 строчка в не форматированном исходном файле.
  • Форматируем данный файл, нажав на значок фигурных скобок в левом нижнем углу панели разработчика. Исполнение кода обернуто в блок try catch для избежания неожиданных ошибок и нарушения работы основного сценария callkeeper.js 10844 — 10854 строки включительно.
  • Код обфусцирован и необходимо привести его в человеко-понятный вид.
  • Результатом выполнения данного кода является:
  • Проверить, есть ли на странице iframe элементы
  • Если есть, то проверять есть ли у них атрибут className
  • Если есть, то проверять содержит ли этот атрибут в себе последовательность символов “visible”, не обращая внимания на регистр. (подходят даже написания “NOVISIBLE”)
  • Если содержит, то удалить такой элемент
  • Повторять весь сценарий каждую секунду, пока сайт открыт у клиента

Фактически, это значит что код из файла callkeeper.js удаляет все iframe всегда, если те содержат в себе класс visible или похожие на него и делает это постоянно (каждую секунду), пока пользователь находится на сайте. Удалены могут быть не только iframe Konget, но iframe других сервисов, например платежных систем, систем авторизации и так далее. На странице фактически не останется ни одного сервиса подключенного через iframe кроме самого callkeeper.js

В течение часа мы решили проблему, и восстановили работу нашего сервиса на сайтах клиентов. Я продолжаю задаваться вопросом: зачем это было нужно нашему конкуренту? Тем более, что он так же остается одним из подрядчиков и своими действиями, которые должны нанести урон компании Конгет, на самом деле вредит своим же клиентам, так как они недополучает звонки со своих сайтов.

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

Источник

Оставьте первый комментарий

Добавить комментарий

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.