← Вернуться к списку тем

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

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

С уважением,
Василий

Ответы


  • iMakeBots [10.08.2020 в 10:31 → Vasiliy]
    Обезопасить можно несколькими способами

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

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

    Дополнительно можно заморочиться и прогнать через дополнительное экранирование обратных кавычек, но это на усмотрение.
  • Игорь Next [05.09.2020 в 05:05 → iMakeBots]
    Здравствуйте,

    ? можете отдельно показать
    примеры всех способов безопасности
  • iMakeBots [07.09.2020 в 12:50 → Игорь Next]
    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))));
  • Игорь Next [07.09.2020 в 14:58 → iMakeBots]
    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=МОЙ-ТОКЕН

    или подразумевался другой алгоритм?
  • iMakeBots [07.09.2020 в 15:04 → Игорь Next]