Como ya hemos visto la dependencia esta obsoleta la nueva version es:
@hapi/crumb
Introducción
Qué necesitas para este curso y qué aprenderás sobre Node.js con Hapi
Conceptos principales de hapi y creación de nuestro primer servidor
Breve historia y estado actual
Creando un sitio básico con Hapi
El objeto h, response y sus herramientas
Uso de plugins - Contenido estático
Plantillas con Handlebars
Renderizado de vistas - Layout y template del home
Recibiendo parámetros en una ruta POST - Creación del registro
Definir una mejor estructura con buenas prácticas en Hapi
Validando la información - Implementando Joi
Introducción a Firebase
Creando un modelo y guardando en firebase
Implementando el login y validación del usuario
Autenticación de usuarios - Cookies y estado
Manejando errores
Visualización de errores
Controlar el error 404 en inert y el error de validación
Repaso - Creación del modelo y controlador para preguntas
Repaso - Creación de las rutas para crear preguntas
Listar las últimas preguntas en el home
Aplicacion de conceptos avanzados
Enrutamiento avanzado - visualizando una pregunta
Enrutamiento avanzado - respondiendo una pregunta
Generando la lógica de la plantilla según si es creador o contribuidor
Métodos de servidor - respuesta correcta
Usando métodos de servidor
Manejo del caché - Agregando el home al caché
Procesamiento de archivos - Aceptando imágenes
Logging con Good - Monitoreando el servidor
Creación de plugins - Teoría
Creación de plugins - Implementando un API REST
Estrategías de autenticación - Asegurando el API REST
Seguridad básica - Asegurando el servidor contra CSRF
Seguridad básica - Asegurando el servidor contra XSS
Herramientas de desarrollo
Depuración del proyecto
Ecosistema de Hapi
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
No se trata de lo que quieres comprar, sino de quién quieres ser. Invierte en tu educación con el precio especial
Antes: $249
Paga en 4 cuotas sin intereses
Termina en:
Adrián Estrada
Una de las vulnerabilidades más comunes en cualquier servidor o sitio web, es la Falsificación de Petición en Sitios Cruzados o CSRF por sus sigles del inglés Cross-site request forgery, que es un tipo de ataque en el que son transmitidos comandos no autorizados por un usuario del sitio web en el que deberíamos confiar.
Para atender y corregir esta vulnerabilidad incorporaremos a nuestro proyecto un módulo adicional de Hapi llamado crumb que utiliza un token de validación para cada una de las rutas accedidas por los usuarios.
Implementación
Una vez instalado con npm i crumb -S
procedemos a registrarlo en el scrip principal, de la misma manera que hemos hecho antes con good.
const crumb = require('crumb')
...
await server.register({
'plugin': crumb,
'options': {
'cookieOptions': {
'isSecure': process.env.NODE_ENV === 'prod'
}
}
})
...
Crumb utiliza una cookie para realizar la validación del token en cada una de las rutas de nuestra aplicación y la contrasta con el valor de un input de tipo hidden y de nombre crumb, que debe estar presente en cada una de las vistas.
La propiedad isSecure
estaría entonces activa (en true) cuando estemos en el entorno de producción e inactiva (en false) mientras estemos en el entorno de desarrollo. Cuando no está presente el input de validación o su valor no es el correcto, el servidor devuelve un código de error 403
al browser, indicando que el acceso está prohibido o no está autorizado.
Aportes 4
Preguntas 1
Como ya hemos visto la dependencia esta obsoleta la nueva version es:
@hapi/crumb
cuando agrego crumb a los formularios, los contadores de respuestas dejan de contar, si alguien logra resolverlo que me pase info. saludos.
Buenas tardes, me gustaría saber si me pueden recomendar algún PlugIn para integrar la Autenticacion con ActiveDirectory, estuve viendo node-activedirectory, pero me gustaria ver algo mas apegadao a hapi para seguir el orden de este proyecto.
await server.register({
plugin: crumb,
options: {
cookieOptions: {
isSecure: process.env.NODE_ENV === 'prod'
}
}
})
<input type="hidden" name="crumb" value={{crumb}} />
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?