Seguridad Web en PHP: Prácticas Esenciales en 2025
PHP se mantiene como uno de los lenguajes más utilizados en sitios web del mundo. Pero una mala configuración puede exponer información sensible de usuarios y empresas. Aquí te comparto las prácticas mínimas que debes aplicar en todos tus proyectos en 2025.
1️⃣ Protección contra SQL Injection
Siempre debes usar sentencias preparadas con PDO o MySQLi:
$stmt = $pdo->prepare("SELECT * FROM users WHERE email = ?");
$stmt->execute([$email]);
2️⃣ Protección contra XSS (Cross-Site Scripting)
Escapa siempre la salida:
echo htmlspecialchars($data, ENT_QUOTES, 'UTF-8');
3️⃣ CSRF Tokens en formularios críticos
Evita solicitudes maliciosas verificando tokens:
- Sesiones seguras
- Tokens únicos por usuario/acción
- Expiración de sesión por inactividad
4️⃣ Contraseñas con hashing moderno
No uses SHA256, mucho menos MD5.
$hash = password_hash($pass, PASSWORD_BCRYPT);
5️⃣ Evita mensajes de error detallados en producción
Nunca muestres rutas internas ni SQL. Configura logs privados para administradores.
6️⃣ HTTPS obligatorio (y HSTS opcional)
Certificados TLS como requisito básico.
7️⃣ Mínimos permisos a archivos y BD
Principio de mínimo privilegio:
- Crear usuario de BD solo con permisos necesarios
- Bloquear edición de archivos `.php` desde web
8️⃣ Actualizaciones y librerías confiables
Si no actualizas PHP (versión + parches), tu sitio queda vulnerable a ataques conocidos (CVE).
Fuentes consultadas
- OWASP Foundation — Top 10 Web Risks (2023-2025)
- PHP.org — Password Hashing Guide
- Mozilla Security Guidelines