Red de conocimiento informático - Problemas con los teléfonos móviles - ¿Cuál es el motivo de la vulnerabilidad de inyección xss? ¿Cuáles son los pasos en el proceso de inyección xss? ¿Cuáles son algunas formas de prevenir la inyección de XSS?

¿Cuál es el motivo de la vulnerabilidad de inyección xss? ¿Cuáles son los pasos en el proceso de inyección xss? ¿Cuáles son algunas formas de prevenir la inyección de XSS?

Las vulnerabilidades XSS en la entrada del usuario se deben principalmente a la falta de comprensión de XSS por parte de los desarrolladores y a una escasa conciencia de seguridad. Ahora popularicemos algo de sentido común sobre XSS. Siempre que haya aportaciones de los usuarios durante el desarrollo futuro, debemos tener más cuidado. Recuerde dos principios: filtrar la entrada y escapar de la salida.

1. ¿Qué es XSS?

XSS también se llama CSS (Cross Site Script) y ataque de secuencias de comandos entre sitios. Se refiere a un atacante malicioso que inserta código html malicioso en una página web. Cuando un usuario navega por la página web, se ejecutará el código html incrustado en la página web, logrando así un propósito especial malicioso. XSS es un ataque pasivo y no es fácil de usar debido a su pasividad, por lo que mucha gente suele llamarlo dañino.

En la era WEB2.0, el énfasis está en la interacción, lo que aumenta en gran medida las oportunidades para que los usuarios ingresen información. En este caso, nosotros, como desarrolladores, debemos estar más atentos al desarrollar.

El método principal de ataque XSS

El método de ataque XSS no es más que utilizar atributos HTML para realizar varios intentos de descubrir el método de inyección. Ahora analicemos las tres formas principales.

Primer tipo: para la entrada normal del usuario, la página sigue siendo una salida de contenido.

Abra /goproducttest/test.jsp (limitado a la IP de la empresa), ingrese: lt;scriptgt;alert('xss')lt;/scriptgt;, el script JS se ejecutó exitosamente. Una vez que el atacante descubre este método, puede difundir el formato del enlace (/goproducttest/test.jsp?key=JSCODE), como /goproducttest/test.jsp?key=lt;scriptgt;alert('xss ')amp ;lt ;/scriptgt;, y disfrazar adecuadamente JSCODE, por ejemplo:

/goproducttest/test.jsp?key=3c7363726970743e616c657274282778737327293c2f7363726970743e Cuando otros usuarios señalan este enlace, JS se ejecutará, lo que provocará consecuencias muy graves. , como saltar a la página del troyano, obtener la COOKIE del usuario que ha iniciado sesión, etc.

Segundo tipo: entrada del usuario en el área de código

El principio es que la entrada del usuario no debe incluirse en el área de código.

Tercer tipo: Páginas que permiten a los usuarios introducir etiquetas HTML.

Los usuarios pueden enviar algún código HTML personalizado, que es la situación más peligrosa. Debido a que, de forma predeterminada, el navegador IE usa codificación UNICODE, el código HTML se puede escribir en ASCII o puede usar "/" para conectar cadenas hexadecimales, lo que hace que el filtrado sea extremadamente complicado, como los siguientes cuatro ejemplos, todo se puede ejecutar en IE.

1. Utilice el script JS directamente.

lt; img src="javascript: alert('xss')"

2.

lt;img src="javascript:alert('xss')" /gt;

3.

3, inserte el código utilizando la condición de activación marcada y transcodificar.

lt; img onerror="alert('xss')" /gt;

4./gt

4. Escribe en hexadecimal Enter (funciona) en Maxthon)

lt; img STYLE="imagen de fondo:/75/72/6c/28/6a/61/76/61/73/63/72/69/ 70/74/3a /61/6c/65/72/74/28/27/58/53/53/27/29/29″gt;

El método de escritura anterior es igual a tolt;img STYLE="background-image: url( javascript: alert('XSS'))"gt;

3. Soluciones de ataque XSS

Recuerde dos principios: filtrar la entrada y escapar de la salida.

La implementación específica es la siguiente:

Primero, realice una verificación de entrada confiable en el extremo de entrada para todo el contenido enviado por el usuario. El contenido enviado incluye URL, palabras clave de consulta, encabezado http. y publicaciones, etc.

En segundo lugar, utilice etiquetas

en el lado de salida para el contenido que el usuario ha perdido. El contenido de la etiqueta no se interpretará ni se mostrará directamente. </p><p>En tercer lugar, implemente estrictamente el control del recuento de palabras de entrada de caracteres. </p><p>En cuarto lugar, no debe haber ninguna entrada del usuario en el área de ejecución del script. </p></div> </div> <div class="nextinfo"><a href="wk36cytbns.html">上篇: ¿Puede xbox360 reproducir ufc3?</a> <a href="wk3ko3g16f.html">下篇: ¿Quiénes son los actores de "Wonderful Town"?</a></div> </div> </div> <div class="aside l_box"> <div class="sidebar diyModule"> <div class="side-title"><h3 class="function_t">Artículos populares</h3></div> <ul><li><a href="ou6ijlqll2.html">未找到标题</a></li><li><a href="huqfgxol9d.html">¿Cómo abrir la aplicación móvil vivo cuando llega a esta área?</a></li><li><a href="d2u6rwd5ei.html">El disco Win7C no se puede dividir en particiones. La capacidad particionable es muy pequeña. ¡Por favor, dame un consejo! (Mi computadora portátil es Dell N4010)</a></li><li><a href="n31vv12e1z.html">Cómo ver la instalación exitosa de ubuntu mysql</a></li><li><a href="ftw33e2uj7.html">Cómo recortar personajes en PS cutout</a></li></ul> </div> </div> </div> <footer class="jz52bq footer_style"><p>copyright 2024 <a href="https://www.diannaozhishiwang.com/"><b>Red de conocimiento informático</b></a> All Rights Reserved.<script type="text/javascript" src="../css/tongji.js"></script></p></footer> </body> </html>