Corrección de bugs de seguridad en aplicaciones web
Clase 17 de 30 • Curso de Estándares y Buenas Prácticas para API REST con Laravel
Resumen
¿Cómo mejorar la seguridad en formularios y conexiones?
La seguridad en las aplicaciones web es fundamental para proteger la información y los datos de los usuarios. Uno de los aspectos críticos es asegurarse de que la información sensible, como las contraseñas, no se transmita de manera insegura. Este problema se puede abordar a través de dos mejoras principales: eliminar el campo de "user ID" en formularios y usar el método POST en lugar de GET para enviar datos sensibles.
¿Por qué cambiar de GET a POST?
Cuando se usa el método GET para enviar datos al servidor, la información se adjunta a la URL. Esto significa que cualquier dato sensible, como contraseñas, puede ser fácilmente visible en la barra de direcciones del navegador, comprometiendo así la seguridad del sistema. Para solucionar esto:
- Cambiar las solicitudes GET a POST al enviar datos sensibles.
- Configurar Visual Studio Code para implementar estos cambios en la aplicación.
¿Cómo manejar el user ID en formularios?
Es crucial evitar que los usuarios envíen campos no necesarios, como "user ID", al crear e interactuar con el sistema. La lógica de autenticación debe manejarse del lado del servidor, y para ello:
- Configurar el sistema de creación de recetas para que no acepte el campo "user ID".
- Establecer que la asociación del "user ID" se realice automáticamente al crear la receta desde un usuario autenticado.
Este enfoque permite que el sistema maneje el campo automáticamente, reduciendo el riesgo de errores y problemas de seguridad.
¿Cómo aplicar estos cambios en el código?
A continuación, te presentamos un fragmento de código que demuestra cómo implementar estos cambios en tu aplicación.
# En la configuración del formulario
rutas.POST('/ruta-a-ejemplo', (req, res) => {
// ... lógica para manejar la solicitud
});
# En el controlador para creación de recetas
const crearReceta = (usuarioLogueado) => {
// La receta se crea a partir del usuario logueado
usuarioLogueado.crearReceta({
// Datos de la receta
});
};
¿Cómo asegurarte de que tu código respeta las buenas prácticas?
Aplicar buenas prácticas de desarrollo es fundamental para mantener la seguridad y el buen funcionamiento de una aplicación. Además de las configuraciones específicas mencionadas:
- Utiliza autenticación y tokens de seguridad, verificando que cada solicitud de cambio de estado venga de un usuario autorizado.
- Implementa revisiones regulares de código para identificar y corregir posibles vulnerabilidades.
¿Cómo realizar pruebas de seguridad efectivas?
Probar el sistema es tan fundamental como desarrollarlo. Herramientas como Postman son útiles para este propósito. Aquí te dejamos los pasos básicos para probar seguridad:
- Cambia el tipo de petición a POST en Postman.
- Configura el cuerpo de la solicitud con las credenciales adecuadas.
- Copia y usa un token de acceso para autenticar las solicitudes futuras.
- Asegúrate de que las pruebas reflejan el flujo real del sistema, validando que se asignen correctamente los valores automatizados.
Ejemplo de prueba en Postman:
# Cambiar el verbo a POST
POST /api/ruta
Content-Type: application/json
Authorization: Bearer <Token>
# Cuerpo de la solicitud
{
"email": "iiarrobaadmin.com",
"password": "password",
"deviceName": "app"
}
Con estos métodos, puedes asegurar que tu aplicación se mantiene a tono con las prácticas recomendadas de seguridad. El mantener las aplicaciones seguras no solo protegen los datos de los usuarios, sino también la reputación y confianza depositada en el sistema. ¡Sigue avanzando en tu camino hacia el desarrollo seguro y eficiente!