Buenas prácticas a nivel general

1

Diseño de APIs RESTful: Buenas Prácticas y Principios Básicos

2

¿Qué son los HTTP Status Codes?

3

¿Qué son los Métodos HTTP?

Creación del proyecto

4

Creación y Configuración de Estructuras de Datos en Laravel

5

Creación de Datos Falsos con Factories en Laravel

6

Consultas API con Laravel: Rutas y Controladores

7

Consultas de Datos Relacionados en Laravel

Quiz: Creación del proyecto

Planificación y mantenimiento

8

Planificación y Definición de Rutas en una API con Laravel

9

Gestión de Recursos y Colecciones en APIs Laravel

10

Configuración de Recursos Multinivel en Visual Studio Code

11

Optimización de Consultas en Laravel con Telescope

12

CRUD de Recetas con Laravel y Symfony en Visual Studio Code

13

Validación de Datos en Aplicaciones Web con Laravel

Quiz: Planificación y mantenimiento

Funciones de seguridad

14

Autenticación vs. autorización

15

Autenticación y Generación de Tokens en Laravel

16

Creación de Rutas y Controladores para Iniciar Sesión en API

17

Corrección de bugs de seguridad en aplicaciones web

18

Implementación de Políticas de Acceso en Laravel

19

Subida y Validación de Imágenes en Laravel con Visual Studio Code

20

¿Qué es la autenticación?

Quiz: Funciones de seguridad

API Testing

21

Automatización de Pruebas en Laravel con phpArtisan Test

22

Testing de Módulos Administrativos en Visual Studio Code

23

Pruebas Automatizadas para el Módulo de Recetas en PHP

24

Pruebas de Creación de Datos en Aplicaciones Web

25

Configuración y Pruebas de Actualización de Recetas en Visual Studio Code

Quiz: API Testing

API Breaking Changes

26

Versionado de API: Técnica para Gestión de Versiones y Rutas

27

Desarrollo de API con TDD: Implementación de Versión 2

Quiz: API Breaking Changes

Conclusiones

28

Desarrollo de API RESTful con Laravel: Buenas Prácticas y Seguridad

29

Desarrollo de APIs con Pruebas y Refactorización

No tienes acceso a esta clase

¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera

Corrección de bugs de seguridad en aplicaciones web

17/30
Recursos

¿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:

  1. Cambiar las solicitudes GET a POST al enviar datos sensibles.
  2. 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:

  1. Configurar el sistema de creación de recetas para que no acepte el campo "user ID".
  2. 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:

  1. Cambia el tipo de petición a POST en Postman.
  2. Configura el cuerpo de la solicitud con las credenciales adecuadas.
  3. Copia y usa un token de acceso para autenticar las solicitudes futuras.
  4. 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!

Aportes 2

Preguntas 0

Ordenar por:

¿Quieres ver más aportes, preguntas y respuestas de la comunidad?

otro usuario podria editar cualquier receta solo teniendo el id de ella...
```js // el user_id ya no es campo requerido. // ahora usaremos la relacion para crear // las recetas a partir del usuario logeado. $recipe = $request->user()->recipes()->create($request->validated()); ```