Header Ads Widget

Ticker

6/recent/ticker-posts

Desarrollo de bots seguros utilizando las API de Telegram

 


Telegram es una red de mensajería alternativa que privilegia la privacidad y la seguridad. También es una plataforma flexible que permite a los desarrolladores crear aplicaciones de bots de chat utilizando la API de Telegram Bot .

Los bots de Telegram son una opción popular para aplicaciones relacionadas con chatbot. Esta popularidad ha generado cierta preocupación, ya que se ha descubierto que los bots de Telegram no son tan seguros.

Para este tutorial, aprenderemos cómo utilizar la API de Telegram Bot para programar un bot de Telegram . Luego, echaremos un vistazo a la protección de ese bot, para que su mensajería esté segura.

Cómo programar bots seguros de Telegram

En primer lugar, definamos qué es un bot de Telegram , en caso de que sea nuevo en la popular API de mensajería.

¿Qué es un bot de Telegram?

Un bot de Telegram es cualquier aplicación de terceros que se ejecuta dentro del entorno de Telegram, una plataforma de mensajería alternativa que privilegia la privacidad y la seguridad. Los bots de Telegram se conectan a los usuarios mediante mensajes de texto y devoluciones de llamada de botones en línea , que generalmente están codificados en JSON .

Las aplicaciones de bot pueden ser cualquier cosa, desde un motor de búsqueda hasta una biblioteca multimedia o una simple aplicación de conversación. Los bots de Telegram no requieren instalación adicional, se ejecutan en cualquier plataforma que admita Telegram.

Sistemas operativos que admiten Telegram

  1. Ventanas
  2. iOS
  3. Linux
  4. Androide

Aplicaciones de Telegram Bot

Los bots de Telegram son casi infinitamente abiertos. Son solo programas simples que se ejecutan en el entorno de Telegram. Sin embargo, Telegram ofrece algunos ejemplos de algunas aplicaciones comunes de bots de Telegram para ayudar a los desarrolladores a comenzar con la API de Telegram.

Algunas aplicaciones típicas de bot de Telegram incluyen:

  1. Notificaciones y noticias personalizadas : los bots de Telegram pueden ser útiles para crear publicaciones personalizadas
  2. Interactuar con otras aplicaciones : los bots de Telegram pueden integrarse con otras aplicaciones favoritas como Gmail, IMDB, Wiki, YouTube o GitHub, entre otras.
  3. Aceptar pagos : los bots de Telegram pueden ofrecer servicios pagos o aceptar pagos, actuando como una especie de escaparate virtual
  4. Cree herramientas personalizadas : los bots de Telegram se pueden usar para crear alertas meteorológicas, traducciones o alertas personalizadas
  5. Juegos para un solo jugador o multijugador : los bots de Telegram pueden aprovechar las ricas funciones de HTML5 para crear juegos arcade simples, rompecabezas, juegos de estrategia en tiempo real o juegos de disparos en primera persona, por ejemplo.
  6. Programas sociales : los bots de Telegram se pueden usar para encontrar compañeros de conversación según la ubicación o los intereses compartidos, por ejemplo

Ahora que hemos visto lo que pueden hacer los bots de Telegram, aprendamos cómo construir un bot de Telegram. Luego, veremos qué se necesita para que ese bot sea seguro.

Cómo construir tu primer bot de Telegram

Debido a algunas preocupaciones de seguridad recientes en torno a Telegram, es posible que se pregunte: "¿Por qué debería usar la API de Telegram?" En primer lugar, Telegram sigue siendo una de las API más populares que existen. Hay más de 200.000.000 de usuarios activos mensuales , con una tasa de crecimiento anual del 50% .

Debido a la popularidad de Telegram, hay mucha ayuda y documentación en caso de que tenga algún problema. También es increíblemente fácil crear bots usando Telegram, lo que lo convierte en una excelente opción para los desarrolladores que son nuevos en el uso de API.

Vamos a aprender a construir un bot de Telegram desde cero. Luego veremos cómo agregar comandos adicionales, así como algunos de los lenguajes de programación que se usan comúnmente para crear bots usando la API de Telegram.

Una vez que hayamos configurado nuestro primer bot de Telegram, aprenderemos cómo hacerlo seguro para que pueda usar su bot con la conciencia tranquila.

Para empezar, necesitará:

    • Una terminal Bash : MacOS y Linux generalmente vienen con una terminal Bash incorporada. Sin embargo, es posible que los usuarios de Windows deban instalar uno. Si está usando una máquina con Windows que no ha tenido la Actualización de aniversario de Windows 10 , puede usar un emulador de Windows o crear una máquina virtual de Linux] (https://www.labnol.org/software/run-linux-with -ventanas / 19746 /).https : // www labnol org software run linux con windows 19746 / ).
    • Ruby : consulte la documentación de Ruby para ver qué versión específica de Ruby necesitará para su sistema operativo. Homebrew es una opción popular para los usuarios de Mac. Los usuarios de Windows pueden usar este instalador de Ruby
    • Empaquetador : un empaquetador ayuda a administrar las gemas Ruby, que agregan funcionalidad adicional a sus aplicaciones. Bundler ayuda a crear una interfaz para la API de Telegram para su bot. Una vez que haya instalado Ruby, ejecútelo gem install bundlerusando la terminal
    • Un editor de texto : puede utilizar editores de texto comunes como el Bloc de notas o la Edición de texto. Sin embargo, los editores de texto como Atom están diseñados específicamente para detectar errores de sintaxis en el código, lo que lo hace un poco preferible para fines de programación.

Ahora que estamos configurados, ¡profundicemos y comencemos a construir nuestro primer bot de Telegram!

Paso 1: descargue la aplicación Telegram para escritorio

Telegram se conoce principalmente como una aplicación móvil. Sin embargo, querrá instalar la aplicación Telegram Desktop para un flujo de trabajo fluido. De lo contrario, tendrá que desbloquear su teléfono cada vez que necesite verificar su código.

Paso 2: Chatea con BotFather para obtener tu clave API

Recibir su API de Telegram es una experiencia particularmente meta. Necesitarás chatear con un bot de Telegram para recibir tu clave API. Esto se conoce como BotFather .

Primero, debe buscar el nombre de usuario 'Botfather' en su aplicación de escritorio e iniciar una conversación con él.

Para iniciar una conversación con Botfather, escriba /startVerá una lista de comandos que lo ayudarán a crear, administrar y editar bots. Ya que estamos construyendo nuestro primer bot de Telegram, querrás /newbot.

Esto es parte de lo que hace que Telegram sea una API tan accesible para crear nuevos bots. La mayoría de las otras API requieren un poco más de implementación para comenzar a funcionar. La API de Telegram es lo más parecido a plug-and-play que los desarrolladores probablemente encontrarán sin dejar de ser potente y versátil.

Una vez que haya creado su bot, deberá darle un nombre y un nombre de usuario. Este es el nombre que los usuarios verán en su cliente de chat. Es mejor cuando es breve y memorable, al igual que cualquier otro identificador.

Una vez que haya creado el nombre de usuario y el identificador de su bot, se le dará su clave API. Así es como Telegram realiza un seguimiento del código escrito para un bot en particular. Piense en ello como una huella digital para su bot.

Ahora que está configurado y funcionando, ¡comencemos a escribir nuestro primer código!

Paso 3: Configurar las gemas y el directorio de su bot

Empiece por abrir la terminal. Luego escriba el comando mkdir telegram-botEsto crea el directorio donde se almacenarán los archivos de su bot. Abra el directorio usando el comando cd telegram-botUna vez que esté allí, escriba lo siguiente.

touch Gemfile
touch bot.rb
atom .touch Gemfile
touch bot.rb
atom .

Esto crea dos archivos en blanco. Uno especifica las gemas necesarias para su bot. El otro especifica dónde se almacenará el código de su bot. El código final abre ambos en Atom.

En Atom, abra el Gemfile en la barra lateral, luego pegue lo siguiente.

source 'https://rubygems.org'
gem 'telegram_bot'

Esto le permite a Bundler obtener la interfaz de la API de Telegram de rubygems.org.

Para finalizar la configuración de la gema, regrese a su terminal y escriba bundleEsto le mostrará el contenido de su paquete.

Ahora estamos todos configurados y listos para comenzar a escribir nuestro primer código.

Paso 4: Escribe tu primer código en Telegram

El código que escribirás se ejecutará continuamente dentro de bot.rb. Está vacío al principio, por lo que comenzará vinculando a la gema de Telegram que acaba de crear.

Se parece un poco a esto.


Require 'telegram_bot'

Token = 'Your_Api_key'

Bot = TelegramBot.new{token: token}

Bot.get_updates{fail_silently: true} do [message]
	Puts "@#"message.from.username": #{message.txt}"
	Command = message.get_command_for(bot)
message.reply do [reply]
	case command
	when /start/i
	  reply.text = "All I can do is say hello. Try the /greet command."
	when /greet/i
	  reply.text = "Hello, #[message.from.first_name}. 
	else
	  reply.text = "I have no idea what #{command.inspect} means."
end
End

Ahora tu bot está en funcionamiento. Sin embargo, lo que puede hacer es relativamente limitado. Ahora desarrollemos un poco nuestro bot.

Paso 5: personalización de su bot

Ahora su bot debería estar en funcionamiento. Sin embargo, no puede hacer mucho. Afortunadamente, todas las piezas están en su lugar para desarrollar de lo que es capaz tu bot.

Para empezar, mire los when command/icomandos y el texto entre reply.txtlíneas. Estas son sus entradas, así como lo que devuelve su bot.

Si desea que su bot diga algo diferente en el saludo, cambie el texto reply.txtdebajo del /greetcomando. Una posible alternativa podría ser:

when /greet/i
      greetings = ['bonjour', 'hola', 'hallo', 'sveiki', 'namaste', 'salaam', 'szia', 'halo', 'ciao']
      reply.text = "#{greetings.sample.capitalize}, #{message.from.first_name}!"

Podría considerar agregar diferentes variaciones en el saludo, por ejemplo, o agregar algún tipo de texto aleatorio para hacer que su bot sea más interesante.

Paso 6: Haga que su bot sea increíble

Ahora que hemos aprendido cómo personalizar su bot, es hora de que realmente comience a hacer cosas. Comience pensando en lo que le gustaría que hiciera su bot.

Una vez que haya soñado lo que le gustaría que su bot fuera capaz de hacer, comenzará a visitar los motores de búsqueda y StackOverflow para obtener orientación sobre cómo implementar estas tareas.

Algunas acciones posibles para su bot pueden incluir:

    • Llamar a API adicionales : la integración de API adicionales que podría integrar en su bot de Telegram es cuando las cosas realmente comienzan a ponerse interesantes. Twitter , Slack , Airtable o RSS hacen posible que su bot de Telegram interactúe con aplicaciones externas.
    • Almacene la información del usuario en una base de datos : poder almacenar datos hace que su bot de Telegram sea aún más útil. Una posible aplicación de esto podría ser si los usuarios interactúan con su sitio web fuera del horario de atención. Puede agregar su dirección de correo electrónico a una base de datos para interactuar con ellos durante el horario comercial. La gema Sequel hace que crear e interactuar con bases de datos sea muy fácil en Telegram
    • Crea una aventura de texto : los bots de Telegram pueden crear fácilmente juegos simples como aventuras de texto. Algunos de los primeros juegos de aventuras basados ​​en texto ya se han reinventado como bots de Telegram.

Paso 7: Ponga su bot en línea

Ahora que tu bot puede hacer cosas, ¡es hora de sacarlo de tu sistema y lanzarlo al mundo! Mover su bot del editor de texto a un servidor se llama "implementación".

Hay muchas formas diferentes de instalar su bot en un servidor. Usaremos uno llamado Bitbucket . Bitbucket le permite utilizar git, que le permite realizar y realizar un seguimiento de los cambios. La carga de los archivos de su bot en Bitbucket le permite acceder a ellos cuando está conectado al host.

Para comenzar, inicie sesión en Bitbucket y cree un nuevo repositorio.

Abra la terminal mientras se encuentra en el mismo directorio que el código fuente de su bot. Luego escriba lo siguiente:

git init
git add .
git commit -m 'initial commit'

A continuación, siga las instrucciones en Bitbucket. Vas a conectar tu repositorio existente. Ahora solo tienes que escribir tu contraseña de Bitbucket y ¡Presto! Tu código ahora está en línea.

Paso 8: elija el método de implementación

Existe una amplia gama de enfoques diferentes para implementar su bot de Telegram. Veamos algunos de los más comunes para determinar qué método de implementación será mejor para sus necesidades específicas.

Frambuesa pi

Una frambuesa pi es una forma barata y fácil de poner en funcionamiento su bot de Telegram. Pueden costar tan solo $ 7 más el costo de una tarjeta SD. No consumen mucha energía, por lo que su funcionamiento las 24 horas del día, los 7 días de la semana no arruinará el banco.

Si bien hay paquetes de Raspberry pi que intentarán venderle un teclado, un mouse y una funda, solo necesita un cargador USB, una tarjeta SD, un cable ethernet y una computadora para interactuar con él.

Servidor basado en la nube

Ya no es necesario tener un servidor físico para ejecutar un bot. Los servidores basados ​​en la nube son omnipresentes y la mayoría serán lo suficientemente potentes como para alojar un bot de Telegram.

Los servidores populares basados ​​en la nube incluyen:

    • Servicios web de Amazon (AWS)
    • Océano digital
    • Heroku

Heroku y DigitalOcean son particularmente rápidos y fáciles de poner en marcha. Ahora que ha decidido cómo va a alojar su bot de Telegram, veamos cómo hacer que eso suceda.

Paso 9: Implemente su bot

Necesitará instalar Ruby, Bundler y Git donde sea que esté ejecutando su servidor.

Vas a escribir:

sudo apt-get update
sudo apt-get upgrade
curl -L https://get.rvm.io | bash -s stable --ruby
sudo apt-get install bundler
sudo apt-get install git

Ahora creará un nuevo directorio para almacenar los archivos de su bot y luego descargará los archivos de Bitbucket usando los siguientes comandos:

mkdir bots
cd bots git clone https://benjbrandall@bitbucket.org/benjbrandall/telegram-bot.git

Ahora vas a instalar las dependencias de gemas escribiendo bundleLuego escriba nohup ruby bot.rb &y su bot debería estar listo para funcionar las 24 horas, incluso después de que la sesión SSH haya finalizado.

¡Felicidades! Has creado tu primer bot de Telegram. Ahora echemos un último vistazo a cómo asegurarse de que su bot de Telegram sea seguro.

Asegurar su bot de Telegram

A principios de 2019, la firma de seguridad Forcepoint emitió un comunicado señalando algunas preocupaciones de seguridad sobre los bots de Telegram. Forcepoint descubrió que los bots de Telegram no usan el mismo protocolo de cifrado que Telegram.

Los bots de Telegram no emplean el protocolo MTProto, el algoritmo de cifrado utilizado por Telegram. Esto hace que sea mucho más fácil para terceros interceptar mensajes de bots de Telegram.

En cambio, los bots de Telegram utilizan el cifrado web HTTPS . El cifrado web HTTPS está bien, pero hay una razón por la que las aplicaciones de mensajería dependen de métodos de cifrado adicionales para garantizar su seguridad.

Le mostraremos algunas formas diferentes de asegurarse de que sus bots de Telegram estén seguros y protegidos.

Mantenga su clave / token de API en privado

Como mencionamos anteriormente, la clave API de un bot de Telegram es su huella digital. Quien tenga acceso a esa clave puede controlar ese bot, usándolo para lo que desee.

La primera y más sencilla forma de asegurarse de que su bot de Telegram sea seguro es mantener segura su clave API. De esa manera, nadie puede usar su bot de Telegram por medios nefastos.

Endurecer set.php, unset.php y hook.php

Los archivos set.php, unset.php y hook.php también permiten que quien tenga acceso a ellos controle su bot.

    • set.php : registra su enlace a hook.php para que Telegram sepa dónde enviar sus actualizaciones
    • unset.php : desconecta ese enlace, lo que permite al usuario restablecer el bot a una ruta diferente
    • hook.php : es donde se envían sus actualizaciones de Telegram

Aquí hay algunas formas de ayudar a asegurarse de que estos tres archivos sean lo más seguros posible.

Cambie los nombres de los archivos para que sean más seguros

Puede cambiar el nombre de estos archivos por el que desee para que sea más difícil acceder a ellos. No usaría simplemente la contraseña predeterminada para un nuevo sistema informático o software, ¿verdad?

Cambie el nombre de estos tres archivos para que sean más difíciles de adivinar. Puede hacer que los nombres de los archivos sean tan sencillos o complicados como desee. Solo asegúrese de anotar los nombres de los nuevos archivos y mantenerlos en un lugar seguro, para estar seguro de recordar sus nuevos nombres.

Agregar parámetros secretos

Puede agregar un parámetro secreto dentro de su código para hacerlos más seguros. Podría verse algo como esto:
https://mybot.net/hook.php?secret=AihezooSahc0aiquu3aigai2Phee2ien

Luego, dentro del archivo hook.php, incluya el siguiente código:

if (!isset($_GET['secret']) || $_GET['secret'] !== 'AihezooSahc0aiquu3aigai2Phee2ien') {
    die("I'm safe =)");
}

Recuerde incluir este parámetro dentro del archivo set.php donde menciona la URL del webhook.

Usar Telegram Bot Manager

El Bot Director del telegrama es una biblioteca que hace que la configuración y asegurando los robots Telegram una brisa absoluta.

Limitar el acceso a las IP de la API de Telegram

Telegram alerta a los usuarios para saber desde qué IP están enviando actualizaciones.

Para ayudar a que su bot de Telegram sea lo más seguro posible, limite el acceso solo a las direcciones IP desde las que Telegram envía actualizaciones.

En su archivo hook.php, incluya el siguiente código:

// Set the lower and upper limit of valid Telegram IPs.
// https://core.telegram.org/bots/webhooks#the-short-version $telegram_ip_lower = '149.154.167.197'; $telegram_ip_upper = '149.154.167.233'; // Make sure the IP is valid. $lower_dec = (float) sprintf("%u", ip2long($telegram_ip_lower)); $upper_dec = (float) sprintf("%u", ip2long($telegram_ip_upper)); $ip_dec = (float) sprintf("%u", ip2long($_SERVER['REMOTE_ADDR'])); if ($ip_dec < $lower_dec || $ip_dec > $upper_dec) { die("Hmm, I don't trust you..."); }

También puede limitar el acceso de IP en el lado del servidor. Aquí están algunos ejemplos.

Usando Apache

Esta es una forma sencilla de limitar el acceso a IP sin tener que enumerar cada dirección IP.


    Order Allow,Deny
    Allow from 149.154.167.192/26

Usando Nginx

Este comando también limita un rango de direcciones IP, en lugar de tener que enumerar cada una individualmente.

location /mybot {
    allow 149.154.167.192/26;
    deny all;
}

¡Y ahí lo tienes! Ha configurado un bot de Telegram y lo ha protegido. Ahora puede aprovechar esta potente API y su amplia base de usuarios.

Los bots de Telegram son una forma sencilla y fácil de comenzar con los chatbots; operar una tienda web simple; o cree juegos emocionantes para interactuar con su audiencia, sin tener que saber mucho sobre cómo codificar.



Publicar un comentario

0 Comentarios