- 1

Optimización Web con Next.js: Velocidad y Rendimiento Mejorados
01:38 - 2

Creación de Proyectos Next.js con TypeScript y App Router
10:22 - 3

Creación de Tienda Online con NextGIS y Shopify
06:42 - 4

Rutas Estáticas y Dinámicas en Next.js: Creación y Uso Práctico
08:26 - 5

Implementación de Layouts en Next.js: Globales y Locales
06:58 - 6

Navegación Optimizada con Next.js Usando el Componente Link
04:46 - 7

Rutas Dinámicas y Parámetros en Next.js: Implementación Práctica
08:24 - 8

Uso de React Server Components en Next.js: Cliente vs Servidor
09:23 - 9

Arquitectura de Componentes para Landing Page en Next.js
09:13 Prueba tus conocimientos de los conceptos de Next.js
Creación de un Componente React para Sanitizar HTML
Clase 37 de 57 • Curso de Next.js 14
Contenido del curso
- 10

Implementación de CSS Modules en Next.js para Estilizar Componentes
06:46 - 11

Instalación y Configuración de Sass en Next.js
08:39 - 12

Estilos Globales con SASS para Temas Oscuros en Aplicaciones Web
04:41 - 13

Agregar Archivos Estáticos en Next.js: Imágenes y Recursos Internos
04:10 - 14

Optimización de Imágenes con Next.js: Uso de Next.Image
05:48 - 15

Optimización y Responsividad con NextImage en Next.js
09:33 - 16

Optimización de Fuentes de Google en Next.js con Roboto
04:39 - 17

Estilos Dinámicos en React con Classnames y useState
08:39 Confirma que ya sabes manejar estilos y estáticos en Next.js
- 18

Creación de Tienda en Shopify para Desarrollo con Next.js
04:18 - 19

Creación y uso de variables de entorno en Next.js
07:53 - 20

Consumo de APIs con Shopify y React Server Components
09:22 - 21

Implementación de Loader en Next.js para Carga de Productos
09:07 - 22

Implementación de Root Grouping en Next.js
06:34 - 23

Manejo de Errores en Next.js con React Error Boundary
08:19 Pon a prueba lo que aprendiste de data fetching en Next.js
- 24

Manejo de Errores y Páginas 404 en Next.js
09:17 - 25

React Server Components en Next.js: Renderizado y Optimización
10:12 - 26

Diferencias entre archivos Template y Layout en Next.js
05:57 - 27

Arquitectura Escalable para Aplicaciones de Software
08:23 - 28

Creación de APIs con Next.js y Road Handlers
07:54 - 29

Configuración y Creación de Colecciones en Shopify
05:53 - 30

Patrones de Fetching en Next.js: Secuencial y Paralelo
11:36 - 31

Filtrado Dinámico de Productos en Shopify mediante API Collections
10:36 - 32

Uso de searchParams y params en componentes React cliente-servidor
07:38 - 33

Implementación de la Vista de Producto en TypeScript y React
11:43 - 34

Gestión de Caché en Next.js: Tipos y Recomendaciones Prácticas
10:31 - 35

Revalidación de Caché en Next.js: Endpoints por Tag y Path
11:20 - 36

Redirección en Next.js: Server y Client Components
06:34 - 37

Creación de un Componente React para Sanitizar HTML
10:26 - 38

SEO Dinámico y Estático en Next.js para Mejorar Posicionamiento Web
08:51 ¡Revisa los temas avanzados de Next.js en este quiz!
- 39

Implementación de API GraphQL en Shopify para Autenticación Segura
03:48 - 40

Uso de Server Actions en Next.js para Formularios React
06:22 - 41

Implementación de Signup con GraphQL y Shopify
12:56 - 42

Implementación de Cookies de Acceso en Shopify con Next.js
11:20 - 43

Implementación de Flujo de Login con Tokens y Cookies
07:50 - 44

Validación de Access Tokens en Next.js con GraphQL y Cookies
07:51 - 45

Implementación de Carrito de Compras con React Icons
11:37 - 46

Manejo de estado global con Sustant en Next.js 13
09:34 - 47

Implementación de Carrito de Compras en JavaScript y CSS
07:55 - 48

Solución de errores de hidratación en carritos con Next.js y Shopify
12:13 - 49

Implementación de Middlewares en Next.js para Control de Acceso
08:39
¿Cómo solucionar problemas de HTML en la vista del producto en React?
En el desarrollo de aplicaciones web con React, es común enfrentarse a problemas relacionados con el manejo del HTML, especialmente cuando se reciben strings con etiquetas HTML insertadas. Este tutorial te guiará para solucionar estos problemas al crear un componente que mitigue vulnerabilidades y errores de hidratación. Veremos cómo sanitizar HTML para asegurar la protección contra ataques de XSS y optimizar la interfaz.
¿Cuál es el problema inicial con la inyección de HTML en React?
Inyectar HTML en una aplicación React directamente desde un string puede generar:
- Problemas de hidratación: El HTML inicial y el generado en el cliente pueden no coincidir.
- Vulnerabilidades de XSS (Cross Site Scripting): Pueden inyectarse scripts maliciosos.
El uso de la inyección peligrosa de HTML en React puede parecer una solución rápida, pero entraña riesgos considerables. Por ejemplo, al intentar incluir el HTML directamente, puede resultar en errores y abrir puertas a posibles ataques.
¿Cómo crear un componente React para sanitizar HTML?
Para resolver estos inconvenientes, se puede crear un componente especializado en sanitizar el HTML. La clave está en procesar el HTML entrante, eliminando cualquier etiqueta o característica que pueda comprometer la seguridad o causar inconsistencias.
Crear el archivo del componente
Primero, organizamos el proyecto:
-
Ubicación del componente: Debe ubicarse en una carpeta
Sharedpara uso común. Crear un archivosanitized.html.tsx. -
Configurar las props: Definir una interfaz o tipo que represente las propiedades del componente. A través del uso de
HTMLAttributesde React, podemos integrar otras propiedades.
type SanitizedHTMLProps = {
html: string;
} & React.HTMLAttributes<HTMLDivElement>;
Uso de la librería sanitized HTML
Para limpiar el HTML, utilizaremos una librería adecuada y ampliamente utilizada en el ecosistema JavaScript:
-
Instalación de la librería: Se detiene el proyecto temporalmente para agregar la dependencia.
npm install sanitize-html -
Implementación del componente: Se utiliza
sanitize-htmlpara filtrar el HTML.
import React from 'react';
import sanitizeHtml from 'sanitize-html';
const SanitizedHTML: React.FC<SanitizedHTMLProps> = ({ html, ...props }) => {
const sanitizedHTML = sanitizeHtml(html, {
allowedTags: ['b', 'i', 'em', 'strong', 'a'],
allowedAttributes: {
'a': ['href'],
},
});
return <div {...props} dangerouslySetInnerHTML={{ __html: sanitizedHTML }} />;
};
export default SanitizedHTML;
¿Cómo integrar el componente en la vista del producto?
Una vez definido el componente de sanitización, se puede integrar en la vista del producto:
-
Importar y reemplazar la inyección peligrosa: Importar el componente
SanitizedHTMLy usarlo en lugar del método peligroso. -
Configuración de etiquetas permitidas: Configura el campo
allowedTagspara controlar qué etiquetas pueden pasar. Por defecto, si el contenido es solo texto, no se deberían permitir etiquetas adicionales.
¿Qué considerar para una aplicación segura?
Al implementar esta solución, es fundamental considerar:
-
Seguridad ante todo: Evitar dejar pasar etiquetas innecesarias, sobre todo scripts o estilos que puedan modificar el layout o funcionalidad de la aplicación.
-
Flexibilidad controlada: Solo permitir etiquetas si es estrictamente necesario, como en listas o imágenes.
Este enfoque no solo mejora la seguridad y estabilidad de la aplicación sino también su rendimiento y mantenimiento a largo plazo. ¡Sigue explorando y mejorando tus habilidades en React para crear aplicaciones web más seguras y eficientes!