Cómo proteger una API REST cuando se conecta desde VB6 (Autenticación con Token paso a paso)

En el artículo anterior aprendiste cómo conectar un software en Visual Basic 6 a una API REST utilizando peticiones GET y POST con JSON.

Pero ahora surge una pregunta muy importante:

¿Qué pasa si cualquier persona intenta enviar datos a tu API?

Si no proteges tu API, cualquiera podría:

  • Enviar información falsa
  • Llenar tu base de datos de datos basura
  • Intentar ataques simples
  • Consumir recursos del servidor sin autorización

Hoy aprenderás cómo agregar una capa básica pero efectiva de seguridad utilizando un Token de autenticación.


¿Qué es un Token en una API?

Un token es una clave secreta que el cliente (VB6) debe enviar junto con la petición.

Si el token no coincide, la API responde con error 401 (No autorizado).

Es como una llave que permite acceder al servidor.


Cómo enviar un Token desde VB6

En VB6 podemos agregar información adicional a la petición usando headers.

Un header es información extra que viaja junto con la petición HTTP.

Ejemplo en VB6 agregando Authorization Header

Dim http As Object
Set http = CreateObject("MSXML2.XMLHTTP.6.0")

http.Open "POST", txtUrlApi.Text, False

' Agregar header de autenticación
http.setRequestHeader "Authorization", "Bearer 123456TOKEN"

http.setRequestHeader "Content-Type", "application/json"

Dim json As String
json = "{""nombre"":""Juan"",""email"":""juan@mail.com""}"

http.send json

MsgBox http.responseText

 

Aquí estamos enviando un Token llamado 123456TOKEN.

 

Cómo validar el Token en PHP (API)

Ahora debemos verificar ese token en el servidor.

Ejemplo básico en PHP

<?php

$headers = getallheaders();

if (!isset($headers['Authorization']) || $headers['Authorization'] != 'Bearer 123456TOKEN') {
    http_response_code(401);
    echo json_encode(["error" =&gt; "No autorizado"]);
    exit;
}

echo json_encode(["status" =&gt; "ok", "mensaje" =&gt; "Acceso autorizado"]);

Si el token no coincide, la API responde con:

{
  "error": "No autorizado"
}


¿Qué está pasando realmente?

  • VB6 envía datos + token
  • La API revisa el token
  • Si es correcto → permite acceso
  • Si no es correcto → bloquea la petición

Esto es seguridad básica, pero suficiente para evitar accesos accidentales o no autorizados.

 

Estructura de un token real

Buenas prácticas adicionales

  • Usar HTTPS siempre
  • No exponer el token públicamente
  • No dejar el token escrito en texto plano en producción
  • Implementar validaciones adicionales en el servidor

Entonces… ¿Necesito migrar todo mi sistema VB6?

No.

No necesitas reescribir tu software completo.

Solo necesitas agregar una capa de comunicación segura.

VB6 puede seguir funcionando localmente mientras la API maneja:

  • Sincronización en la nube
  • Integración con otros sistemas
  • Acceso web
  • Seguridad centralizada

Esto se llama modernización progresiva.


Próximo paso

En el siguiente artículo veremos cómo sincronizar una base de datos local en VB6 con una API REST real utilizando un ejemplo práctico con registros almacenados en MySQL.

Si aún no has leído el artículo anterior, puedes verlo aquí:


Cómo conectar VB6 a una API REST paso a paso

Deja una respuesta