Небезопасный Salebot или как не "профукать" персональные данные при заказе чат-бота
Вступление
Здесь не будет глубокого погружения в механизмы передачи данных и высоких технических терминов. Только факты и собственные наблюдения.
Будет интересно разработчикам на Salebot и некоторым заказчикам чат-ботов, заботящихся о безопасности.
Разработкой чат-ботов занимаюсь уже почти 5 лет. Сначала писал на питоне, потом перешел на конструктор чат-ботов, так как больший фунционал из коробки, относительно легкое "программирование", ну и собственно, скорость разработки. И так...
Пару слов о Salebot
Выбор пал сразу на этот конструктор, освоение было делом не сложным и количество выполняемых проектов резко возрасло, что не могло не радовать.
Интеграции с основными месенджерами, собственная CRM, аналитика, подключаемые сервисы (прием платежей в боте, телефония, инфопродукты и т.д).
Как понятно из вступления, если вам нужен чат-бот - вам нужен Salebot.
Единственный минус в освоении конструктора - его справка;) даже для разработчиков со стажем, она бывает двусмысленной и какой-то не полноценной, и только судя по salebot.wiki, видно, что ребята исправляются. Ладно, не суть.
Дальше не буду лить воду, сразу к делу.
Это очень просто!
После регистрации в Сейле (Премиум на 14 дней - бесплатно), в конструкторе воронок нужно создать какой-нибудь пустой блок и нажать на кнопку "Протестировать бота":
Откроется вкладка тестирования бота. Нужно немного подождать или что-нибудь написать в окне тестирования и терпение нам воздастся;)
Далее, жмакаем правой кнопкой в любом месте и выбираем пункт Просмотреть код:
Откроется окно DevTools и переходим на вкладку Console:
И, барабанная дробь... что мы видим:
Ого! Из того, что мне встречалось: имена и номера телефонов, ссылки на (бес)платные материалы, доступы в приватные телеграм каналы (по подписке), события оплаты и т.п. И Бог его знает, что ещё может встретиться тут.
Мне не особо интересны были эти данные, так как мы законоопослушные граждане и бережно относимся к конфиденциальности. Да ведь?! Но, мне стало интересно, откуда все эти сообщения.
Исследование
В современном браузере проще простого выявить ошибки и понять нагрузку того или иного скрипта или его части.
В том же самом окне, нажмем на ссылку ненадежного скрипта справа:
И попадаем на вкладку Sources:
Вот, где-то тут ошибка 🤣
Ладно, жмакаем кнопку Pretty print, вот она:
О, так уже понятнее:
Но, где найти место вывода сообщения в консоль? Можно попробовать поиск по фразе так: console.log или сходить обратно на вкладку Console и увидеть, что теперь ссылка возле каждого сообщения изменилась. Переходим:
Собственно, на этом всё. Так мы находим место трасляции сообщений:
Из контекста становится ясно что это за сообщения и какого они тут делают. Это сообщения из Окна тестирования ботов других разботчиков, попадающие под определенные критерии. Думаю, что дальнейшие исследования в этом направлении каждый проведет самостоятельно, если на то будет желание.
Как ещё - тайное может стать явным?
Сейлбот "дарит" разработчикам сервис создания коротких ссылок, но, к сожалению, многие не полностью читают документацию и это приводит к "сливу информации". При использовании коротких ссылок почему-то забивают на безопасность.
О чем речь
Типичная короткая ссылка в сейл бот выглядит так:
sblnk.ru/68090150, или так: sblnk.ru/68090000
То есть, домен sblnk.ru и порядковый номер. В ссылках выше, номера придумал сам, не загадывая есть там контент или нет.
Какие-то разработчики, создавая такие ссылки в боте, забывают их после использования удалить и материалы по ссылке становятся "общим достоянием". Попробуйте сами вписать любой номер после имени домена и поймете о чем речь.
Хотя в сейле масса функций, позволяющих исключить подобную оплошность:
- proxy_date() и proxy_timeout()
- remove_links()
- remove_one_time_links()
- remove_timer_links()
Используйте их! Позаботьтесь о безопасности.
Выводы
Выводы для разработчиков: не следует проводить тестирование бота во вкладке тестирования с реальными или значимыми для заказчика данными. Это может быть не безопасно. По крайней мере, пока.
Использовать для коротких ссылок методы их удаления.
Выводы для salebot: сделать случайную генерацию коротких ссылок, используя буквенно-цифровую генерацию. Провести работу над ошибками.
От автора
Спасибо всем, кто дочитал. Надеюсь было немного интересно и чуть познавательно. Об обнаруженных ошибках я сообщил в поддержку salebot, обещали принять меры. Хороших вам ботов и добрых заказчиков!