En este capítulo, vamos a ver algunos ataques comunes, y cómo el sitio del tablón de anuncios de muestra es vulnerable, y cómo solucionarlo para esos ataques. La primera vulnerabilidad que veremos es secuencias de comandos entre sitios. Recuerde que las secuencias de comandos entre sitios son una vulnerabilidad eso sucede cuando tomamos información de un usuario y mostrárselo a otro usuario. ¿Por qué es esto una vulnerabilidad? Recuerda que lo que el servidor envía al usuario se muestra como una página HTML. La página HTML puede incluir JavaScript que es el código que se ejecuta en el navegador. No queremos que los hackers pongan código en nuestro sitio que se ejecuta en los navegadores de otros usuarios. El sitio del tablón de anuncios tiene dos lugares donde tomamos la entrada de un usuario y mostrárselo a otros usuarios. Uno está en los perfiles de usuario, y el otro está en los tablones de anuncios. Vamos a ver específicamente los perfiles de usuario. Así que aquí, cuando tenemos publicaciones recientes, podemos hacer clic en el perfil de un usuario, en el nombre del usuario para ver su perfil. Y ahí vemos el perfil de John. Ahora, si John quiere editar su perfil, Actualmente estoy conectado como John, Puedo hacer clic en Editar perfil. Y luego pueden cambiar su texto Acerca de y cambiar su foto de perfil. Para probar para ver si un campo en particular es vulnerable a secuencias de comandos entre sitios, solo tenemos que ingresar algo de HTML en él. Así por ejemplo, hagamos esto último en negrita, si somos vulnerables a las secuencias de comandos entre sitios. Si no somos vulnerables a las secuencias de comandos entre sitios, entonces veremos la etiqueta real, fuerte. Volveremos y veremos el perfil de John. Entonces podemos ver que esa oración en realidad está en negrita. No vemos las etiquetas. Las etiquetas se interpretan como HTML. Eso significa que este campo en particular es vulnerable a secuencias de comandos entre sitios. Veamos otro ejemplo. Recuerde que HTML puede incluir JavaScript. Dado que es vulnerable a secuencias de comandos entre sitios, este script se ejecutará cuando un usuario vea el perfil de John. Entonces ese script se ejecutó y mostró una alerta. Ahora una alerta es bastante benigna, pero cualquier JavaScript podría haber estado allí, y hubiera sido ejecutado. Entonces, las secuencias de comandos entre sitios permiten a los piratas informáticos poner código en su sitio que se ejecutará en los navegadores de otros usuarios. ¿Cómo arreglamos eso? Bueno, la idea básica es que tenemos que procesar la salida y reemplace ciertos caracteres clave con equivalentes HTML. Por ejemplo, reemplazamos el signo menor que con un <. Reemplazamos el signo mayor que con uno similar entidad HTML. Ahora tenemos que hacer eso con cada personaje. eso es especial para HTML. Esto tiene que hacerse con cualquier salida. que enviamos al navegador del usuario que incluye la entrada de otro usuario. Y es muy fácil perderse lugares. Así que la mejor manera de resolver esto es utilizar un sistema de plantillas. El sistema de plantillas es básicamente un mini-lenguaje que usamos para crear nuestras páginas web. Déjame mostrarte el sistema de plantillas. que este sitio en particular está usando. Así que estamos usando el sistema de plantillas Twig. Puedes ver que, por ejemplo, tenemos un encabezado allí que dice Perfil para, y luego entre llaves dobles, es persona.nombre. Eso es tomar el contenido de una variable llamada persona, tomando un campo en él llamado nombre, y luego enviarlo al navegador web. Los sistemas de plantillas por defecto te protegerán de secuencias de comandos entre sitios. De hecho, tuve que decirle específicamente a este sistema de plantillas para no protegerme para que pudiéramos ver la vulnerabilidad. Miramos hacia abajo donde mostramos el texto Acerca de. Agregué en la bandera sin procesar allí para decirle al sistema de plantillas, no me proteja de secuencias de comandos entre sitios. Así que déjame quitar esa bandera cruda, salva eso y luego actualice este perfil. Así que ahora puedes ver que yo veo el JavaScript real en el que ingresaron. No se ejecuta. Un sistema de plantillas es, con mucho, la mejor manera para protegerse contra secuencias de comandos entre sitios, ya que te protegerá automáticamente cada vez que envíe algo al navegador web. No tienes que preocuparte por perderte algo en tu filtro. Hay otra vulnerabilidad de secuencias de comandos entre sitios en el sitio del tablón de anuncios. Recuerda lo que hablamos cuando hablamos de entrada y salida y qué acciones podrían ser vulnerables. te lo dejo como ejercicio para encontrar ese y arreglarlo. Gracias por ver. En la próxima lección, veremos la manipulación de URL, truco muy común que usan los piratas informáticos para obtener acceso a áreas no deberían poder acceder.