Los endpoints API son puertas de entrada críticas a tu aplicación. Si no están bien protegidos, pueden convertirse en una fuente de ataques, filtraciones de datos o modificaciones no autorizadas. En este artículo aprenderás a proteger tus endpoints en PHP y Python con prácticas seguras, tokens, autenticación y validaciones.
Índice
- Principales amenazas a endpoints API
- Autenticación segura: tokens y cabeceras
- Protección de endpoints en PHP
- Protección de endpoints en Python (Flask)
- Buenas prácticas adicionales
Principales amenazas
- Falta de autenticación
- Endpoints públicos que exponen datos
- Tokens no cifrados o predecibles
- Parámetros sin sanitizar → riesgo de inyección
- Falta de control sobre IPs, límites y logs
Autenticación con token en cabecera
Los tokens se deben enviar por cabecera HTTP con formato:
Authorization: Bearer TU_TOKEN
Es recomendable generar tokens con UUID o SHA256, expirar tokens y controlar su uso por IP/tiempo.
Ejemplo en PHP
$headers = getallheaders(); if (!isset($headers['Authorization']) || $headers['Authorization'] !== 'Bearer 12345ABC') { http_response_code(401); echo json_encode(["error" => "Unauthorized"]); exit; } // Endpoint protegido $data = ["respuesta" => "OK"]; echo json_encode($data);
Extensión: validar IP o limitar llamadas
- Validar
$_SERVER['REMOTE_ADDR']
- Registrar peticiones por IP en base de datos
Ejemplo en Python (Flask)
from flask import Flask, request, jsonify app = Flask(__name__) @app.route('/api/segura') def segura(): auth = request.headers.get("Authorization") if auth != "Bearer 12345ABC": return jsonify({"error": "Unauthorized"}), 401 return jsonify({"respuesta": "OK"}) app.run()
Recomendación:
- Usar librerías como
flask-limiter
para rate limiting - Almacenar tokens con hashing
Buenas prácticas
- Auditar endpoints y eliminar los no usados
- Habilitar CORS solo cuando sea necesario
- Usar HTTPS siempre
- Hacer logging de acceso
- Separar entornos de desarrollo y producción
Conclusión
Proteger tus endpoints es clave para cualquier proyecto ecommerce o SaaS. No basta con “que funcionen”; deben resistir ataques reales y no exponer datos críticos.
¿Quieres que auditemos la seguridad de tu API? Contáctanos.