Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

Вступление

Здесь не будет глубокого погружения в механизмы передачи данных и высоких технических терминов. Только факты и собственные наблюдения.

Будет интересно разработчикам на Salebot и некоторым заказчикам чат-ботов, заботящихся о безопасности.

Разработкой чат-ботов занимаюсь уже почти 5 лет. Сначала писал на питоне, потом перешел на конструктор чат-ботов, так как больший фунционал из коробки, относительно легкое "программирование", ну и собственно, скорость разработки. И так...

Пару слов о Salebot

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

Интеграции с основными месенджерами, собственная CRM, аналитика, подключаемые сервисы (прием платежей в боте, телефония, инфопродукты и т.д).

Как понятно из вступления, если вам нужен чат-бот - вам нужен Salebot.

Единственный минус в освоении конструктора - его справка;) даже для разработчиков со стажем, она бывает двусмысленной и какой-то не полноценной, и только судя по salebot.wiki, видно, что ребята исправляются. Ладно, не суть.

Дальше не буду лить воду, сразу к делу.

Это очень просто!

После регистрации в Сейле (Премиум на 14 дней - бесплатно), в конструкторе воронок нужно создать какой-нибудь пустой блок и нажать на кнопку "Протестировать бота":

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

Откроется вкладка тестирования бота. Нужно немного подождать или что-нибудь написать в окне тестирования и терпение нам воздастся;)

Далее, жмакаем правой кнопкой в любом месте и выбираем пункт Просмотреть код:

или <b>F12 </b>нажать - это одно и тоже
или F12 нажать - это одно и тоже

Откроется окно DevTools и переходим на вкладку Console:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

И, барабанная дробь... что мы видим:

Ого! Из того, что мне встречалось: имена и номера телефонов, ссылки на (бес)платные материалы, доступы в приватные телеграм каналы (по подписке), события оплаты и т.п. И Бог его знает, что ещё может встретиться тут.

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

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

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

В том же самом окне, нажмем на ссылку ненадежного скрипта справа:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

И попадаем на вкладку Sources:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

Вот, где-то тут ошибка 🤣

Ладно, жмакаем кнопку Pretty print, вот она:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

О, так уже понятнее:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

Но, где найти место вывода сообщения в консоль? Можно попробовать поиск по фразе так: console.log или сходить обратно на вкладку Console и увидеть, что теперь ссылка возле каждого сообщения изменилась. Переходим:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

Собственно, на этом всё. Так мы находим место трасляции сообщений:

Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота

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

Как ещё - тайное может стать явным?

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

О чем речь

Типичная короткая ссылка в сейл бот выглядит так:

sblnk.ru/68090150, или так: sblnk.ru/68090000

То есть, домен sblnk.ru и порядковый номер. В ссылках выше, номера придумал сам, не загадывая есть там контент или нет.

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

Хотя в сейле масса функций, позволяющих исключить подобную оплошность:

  • proxy_date() и proxy_timeout()
  • remove_links()
  • remove_one_time_links()
  • remove_timer_links()

Используйте их! Позаботьтесь о безопасности.

Выводы

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

Использовать для коротких ссылок методы их удаления.

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

От автора

Спасибо всем, кто дочитал. Надеюсь было немного интересно и чуть познавательно. Об обнаруженных ошибках я сообщил в поддержку salebot, обещали принять меры. Хороших вам ботов и добрых заказчиков!

1313
2 комментария

Здравствуйте, спасибо за замечания, приступили к исправлениям. От себя добавлю. В тех логах нет ничего критичного, это сообщения из того же проекта(можно по номеру увидеть), к которому у вас есть доступ. У нас единое окно тестирования для всего проекта. В него можно зайти и увидеть все, что тестировали ранее. Если у вас конечно есть доступ к проекту.

В любом укорачивателе можно перебрать коды и получить, что скрывается за ссылкой. Если по ссылке конфиденциальная информация, рекомендую использовать авторизацию через мессенджеры: https://docs.salebot.pro/messendzhery-i-chaty/kak-sozdat-bota-v-telegram#kak-sozdat-knopku-dlya-avtorizacii-na-saite

1

В этом-то и "фишка", если можно так сказать - моих проектов на скриншотах нет. Бродкаст какой-то получается...