Безопастность Телеграма. Прием от него данных

← К списку тем

Добрый день!
Посмотрел Ваши уникальные статьи.
Супер. Уже третий день читаю.
Хочу спросить.
Вы все, что получаете от Телеграм не подвергаете санации и проверки на враждебный код и т.п.
Значит ли, что Телеграм сам все фильтрует и от него можно все принимать, записывать в свою базу без обработки?

С уважением,
Василий
Vasiliy 08.08.2020 в 18:26

Авторизуйтесь через Telegram, чтобы ответить.
Откройте бот @SiteAuthBot, нажмите кнопку Старт/Start. Следуйте инструкциям бота.


Ответы

  • Обезопасить можно несколькими способами

    1. Все данные от Телеграм пропускать через драйвер PDO при подключении к БД
    2. Разрешать принимать данные через ВебХук с указанных на оф сайте ip (сейчас это из подсетей 149.154.160.0/20 и 91.108.4.0/22) адреса меняются - за этим надо следить
    3. В качестве вебхук указывать токен бота как часть адреса - который также сверять при получении данных

    В своих приложениях рабочих я пользуюсь этими правилами.

    Дополнительно можно заморочиться и прогнать через дополнительное экранирование обратных кавычек, но это на усмотрение.
    iMakeBots 10.08.2020 в 10:31
    • Здравствуйте,

      ? можете отдельно показать
      примеры всех способов безопасности
      Игорь Next 05.09.2020 в 05:05
      • 1. Пример PDO есть в статьях
        2. Проверить $ip
        if(preg_match('/^149\.154\.160\.[0-9]$/', $ip) 
            || preg_match('/^149\.154\.160\.1[0-9]$/', $ip)  
            || preg_match('/^149\.154\.160\.20$/', $ip) ) {
        } else {
            exit();
        }
        
        3. настроить вебхук на точку входа с параметром token
        https://site.com/index.php?token=token_for_bot_from_botfather
        в точке входа проверять чтобы $_GET['token'] == 'token_for_bot_from_botfather';
        
        4. Экранирование
        $text = str_replace("'", "'", trim(htmlspecialchars(stripslashes($text))));
        iMakeBots 07.09.2020 в 12:50
        • 1. 4. - ok


          2. можете поделиться ссылочкой, на страницу oф ip
          (где следить про их подсети 149.154.160.0/20 и 91.108.4.0/22)


          3. по токену
          ? правильно ли я понял,
          что при установке вебхука на МОЙ-ДОМЕН,
          нужно добавить параметр МОЙ-ТОКЕН
          и при каждом ответе пользователя проверять его ?
          (mytoken=МОЙ-ТОКЕН)

          https://api.telegram.org/botМОЙ_ТОКЕН_БОТА/setwebhook?url=https://МОЙ-ДОМЕН/bots/index.php?mytoken=МОЙ-ТОКЕН

          или подразумевался другой алгоритм?
          Игорь Next 07.09.2020 в 14:58