JavaScript se puede utilizar como una herramienta para que los hackers ataquen los sitios web. Inyectar scripts maliciosos de JS (JavaScript) es uno de los métodos. Entonces, ¿aprendemos cómo prevenir los ataques de inyección de JS? La siguiente es una buena declaración, comparta con usted:
¿Qué es un ataque de inyección de JavaScript?
Cada vez que acepta la aportación de contenido de un usuario y lo muestra, el sitio web es vulnerable a los ataques de inyección de JavaScript. Veamos una aplicación específica que es vulnerable a los ataques de inyección de JavaScript. Supongamos que se ha creado un sitio web de comentarios de clientes. Los clientes pueden visitar el sitio web e ingresar información de comentarios sobre el producto. Cuando un cliente envía comentarios, la información de comentarios se vuelve a mostrar en la página de comentarios.
El sitio web de comentarios de los clientes es un sitio web simple. Desafortunadamente, este sitio web es vulnerable a los ataques de inyección de JavaScript.
Supongamos que se ingresa el siguiente texto en el formulario de comentarios del cliente:
<script> alerta ("boo!") </script>
Este texto representa un script JavaScript que muestra el cuadro de mensaje de advertencia. Después de que alguien envíe este script al formulario de comentarios del cliente, ¡el mensaje Boo! Mostrará un ataque cuando alguien visite el sitio web de comentarios de los clientes en el futuro. También puede pensar que otros no podrán destruirlo a través de ataques de inyección de JavaScript.
Ahora, su primera reacción a los ataques de inyección de JavaScript puede ser ignorarlos. Puede pensar que los ataques de inyección de JavaScript no son más que inofensivos, y desafortunadamente, los piratas informáticos sabotan inyectando JavaScript en sus sitios web. Se puede usar un ataque de inyección de JavaScript para realizar ataques de secuencias de comandos de sitios cruzados (XSS). En un ataque de scripts de sitios cruzados, la información confidencial del usuario puede ser robada y enviada a otro sitio web.
Por ejemplo, los piratas informáticos pueden usar ataques de inyección de JavaScript para robar valores de cookies de los navegadores de otros usuarios. Si la información confidencial (como contraseñas, cuentas de tarjetas de crédito o números de seguro social) se guarda en las cookies del navegador, los piratas informáticos pueden robarla utilizando ataques de inyección de JavaScript. Alternativamente, si el usuario ingresa información confidencial en el campo de formulario de la página y la página se ve comprometida por un ataque de JavaScript, el hacker puede usar el JavaScript inyectado para obtener los datos del formulario y enviarlo a otro sitio web.
Por favor preste gran atención. Tome en serio los ataques de inyección de JavaScript y proteja la información confidencial de los usuarios. En las siguientes dos secciones, discutiremos dos técnicas para evitar que las aplicaciones ASP.NET MVC sean atacadas por la inyección de JavaScript.
Método 1: codificación HTML en la vista
Una manera fácil de evitar ataques de inyección de JavaScript es codificar datos ingresados por cualquier usuario del sitio web en HTML al redisir los datos en la vista.
Por ejemplo: <%= html.Encode (fownles.message)%>
¿Cuál es el significado de usar HTML para codificar una cadena? Cuando se usa HTML para codificar cadenas, los caracteres peligrosos como <y> se reemplazan con entidades HTML como <y>. Entonces, cuando la cadena <script> alerta ("boo!") </script> está codificada usando html, se convertirá en <script> alert ("boo!") </script>. El navegador ya no ejecuta scripts de JavaScript al analizar cadenas codificadas. En cambio, muestra páginas inofensivas
Método 2: codificación HTML antes de escribir en la base de datos
Además de usar HTML para codificar datos al mostrar datos en una vista, también puede usar HTML para codificar datos antes de enviarlos a la base de datos. El segundo método es exactamente el caso con el controlador en el Listado 4 del programa.
como:
Public ActionResult Create (String Message) {// Agregar TownlesVar newFeedback = new Tubnomential (); newFeedback.message = server.htmlencode (mensaje); newFeedback.Entrydate = DateTime.Now; db.FeedBacks.insertonSubMit (Newfeedback); db.submitchanges ();; // redirectreturn redirectToAction ("índice");}Tenga en cuenta que el valor del mensaje está codificado en la operación Create () antes de enviar a la base de datos. Cuando un mensaje se vuelve a mostrar en la vista, el mensaje está codificado HTML, por lo que no se realiza JavaScript en el mensaje.
Resumir
A menudo, las personas prefieren usar el primer método discutido en este tutorial y no el segundo método. El problema con el segundo enfoque es que los datos codificados por HTML eventualmente se conservarán en la base de datos. En otras palabras, los datos en la base de datos contendrán caracteres extraños. ¿Cuál es la desventaja de esto? Si necesita mostrar datos de la base de datos en un formulario que no sea una página web, encontrará problemas. Por ejemplo, los datos no se pueden mostrar fácilmente en aplicaciones de formularios de Windows.
Lo anterior es todo el contenido de este artículo. Espero que sea útil para el aprendizaje de todos y espero que todos apoyen más a Wulin.com.