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

  • 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.

Ir al contenido