Colección de citas famosas - Colección de consignas - Vulnerabilidades web que los programadores front-end deben conocer, ven y echa un vistazo

Vulnerabilidades web que los programadores front-end deben conocer, ven y echa un vistazo

Con el desarrollo de Internet, ya no se limita a simples páginas web o redes sociales, sino también al comercio electrónico, compras, transferencias bancarias, gestión empresarial, etc. La última vez que vi una noticia, después de que un programador de back-end renunció, aprovechó su puesto y continuó transfiriéndose dinero a sí mismo todos los días. Después de transferir dinero muchas veces, fue descubierto. O puede robar información comercial importante, por lo que la seguridad web también es muy digna de mención.

¿Qué es la seguridad web?

Los piratas informáticos aprovechan las vulnerabilidades del sistema operativo de la red y las vulnerabilidades de inyección SQL del servidor web para hacerse con el control del servidor web, desde manipular, eliminar y agregar datos hasta robar información comercial importante, transferencias, etc. Es más Lo grave es implantar código malicioso en la página web, provocando que el sitio web sufra daños inesperados.

Los ataques comunes se pueden dividir en tres categorías: XSS, CSRF e inyección SQL.

Cross Site Scripting es un ataque de secuencias de comandos entre sitios. Para distinguirlo de CSS, se abrevia como XSS.

Los ataques maliciosos implantan código de script malicioso en páginas web. Cuando los usuarios navegan por una página web, se ejecutará el código de script incrustado en la web, logrando así el efecto del ataque.

Para decirlo sin rodeos, los atacantes malintencionados agregan código de script malicioso al cuadro de entrada, y el código de script se ejecuta cuando el usuario navega por la página web, atacando así al usuario de forma maliciosa.

1.1. Peligros del XSS

1.2. Tipos de ataques XSS

Al realizar una solicitud, el código XSS aparecerá en la URL y se enviará al server como entrada., el servidor lo devuelve al navegador, y luego el navegador analiza y ejecuta el código XSS. Este proceso es como un reflejo, por lo que se llama tipo de reflexión.

Este tipo de ataque generalmente coloca el código de ataque XSS en la parte de transmisión de datos de la dirección de solicitud, como por ejemplo:

El código XSS enviado se almacenará en el lado del servidor, como Como base de datos, en la memoria y el sistema de archivos, el código XSS ya no se enviará la próxima vez que se solicite la página de destino.

Los ataques XSS de tipo documento no pasan por el servidor como intermediario, secuestran paquetes de datos de la red durante la transmisión de datos y luego modifican los documentos html que contienen.

1.3. Medidas de defensa XSS

Medida 1: Codificación.

Codifique estos datos en entidades html. Se requiere codificación de escape tanto en el lado del cliente como en el del servidor.

Después de escapar, es:

Si se coloca en el código anterior, aún se analizará automáticamente en el código anterior, por lo que se coloca afuera.

Medida 2: Filtrar.

Elimine los atributos DOM cargados por el usuario, como el error anterior.

Elimina los nodos de estilo, script e iframe cargados por el usuario.

Medida 3: Usar CSP

La política de seguridad de contenido en el navegador es decidir qué recursos carga el navegador.

Falsificación de solicitudes entre sitios. Falsificación de solicitudes entre sitios.

El atacante induce a la víctima a ingresar a un sitio web de terceros, envía una solicitud entre sitios al sitio web atacado y utiliza las credenciales de registro que el atacante obtuvo en el sitio web atacado para evitar al usuario en segundo plano. verificación y suplantación del usuario. Atacar algún tipo de operación en el sitio web.

Características del ataque CSRF:

2.1. Daño del CSRF

2.2 Tipos de ataques CSRF

Es muy sencillo de usar. sólo una solicitud http.

Por ejemplo, agregar un enlace a una imagen en la página, así como un iframe y un script, es la forma más fácil de completar un ataque CSFR, es difícil de descubrir por los usuarios y está altamente oculto.

Dado que la interfaz get es el tipo más común de ataque CSRF, muchas interfaces importantes no son adecuadas para el método get. El uso de post puede prevenir ataques CSRF hasta cierto punto.

Este tipo de ataque SCRF suele utilizar un formulario enviado automáticamente. En pocas palabras, se trata de falsificar un formulario enviado automáticamente. Una vez que se accede a la página, el formulario se enviará automáticamente.

Tales como:

En comparación con los dos primeros, este tipo de ataque es relativamente raro. Los ataques de tipo enlace deben ser activados cuando el usuario hace clic en el enlace.

Por lo general, las imágenes publicadas en foros contienen enlaces maliciosos o se utilizan como publicidad para inducir a los usuarios a hacer clic en ellas. Por eso, cuando veamos anuncios desordenados en nuestro buzón, intentemos no hacer clic en ellos para evitar ataques de terceros.

Forja un nuevo tipo de método de ataque. El usuario piensa erróneamente que está iniciando sesión normalmente en el sitio web. De hecho, utiliza su cuenta y contraseña para iniciar sesión en el sitio web del pirata informático. el pirata informático puede monitorear todas las operaciones del usuario e incluso conocer la información de la cuenta del usuario.

2.3. Medidas de defensa CSRF

Medida 1: Verificar la información del referente en el encabezado http

El referente se incluye en el encabezado de la solicitud e indica la fuente de la página. de la interfaz de solicitud.

Cuando el servidor verifica la información del referente y descubre que proviene de un dominio externo, puede interceptar la solicitud. Al bloquear el acceso desde dominios externos desconocidos, los ataques se pueden reducir hasta cierto punto.

Medida 2: Usar tokens de un solo uso

Usar tokens de un solo uso para la identificación Los piratas informáticos no pueden obtener los tokens de un solo uso a través de dominios cruzados, por lo que el servidor puede determinar si. llevar un token de un solo uso puede excluir a algunos operadores ilegales.

Medida 3: Usar imágenes de verificación

El servidor genera texto y números, guarda esta información en el servidor y la muestra en el cliente en forma de imágenes para permitir a los usuarios Complete legalmente la información Cuando ocurre un ataque CSRF y no se puede obtener el código de verificación, la información no se puede proporcionar al servidor, lo que provoca que la coincidencia falle, identificándolo como un atacante ilegal.

Esta aplicación es muy común. Al iniciar sesión antes, era necesario completar un código de verificación gráfico.

La verificación de imágenes deslizantes también es muy común hoy en día.

La inyección de SQL generalmente ocurre durante el registro, comentarios, agregados, etc. Siempre que haya entrada del usuario, puede ocurrir la inyección de SQL. La inyección SQL es una vulnerabilidad de seguridad web común que permite a los atacantes acceder o modificar datos y explotar posibles vulnerabilidades de la base de datos.

La llamada inyección SQL consiste en insertar comandos SQL en un formulario web para enviar o ingresar la cadena de consulta de un nombre de dominio o solicitud de página y, en última instancia, engañar al servidor para que ejecute comandos SQL maliciosos. Específicamente, es la capacidad de utilizar aplicaciones existentes para inyectar comandos SQL (maliciosos) en el motor de base de datos backend para su ejecución. Puede obtener información sobre un sitio web con vulnerabilidades de seguridad ingresando declaraciones SQL (maliciosas) en un formulario web. que ejecutar sentencias SQL según lo previsto por el diseñador.

Por ejemplo, muchos sitios web de cine y televisión anteriores filtraron contraseñas de miembros VIP, principalmente al enviar caracteres de consulta a través de formularios WEB. Dichos formularios son particularmente vulnerables a los ataques de inyección SQL

3.1. p> Puedes iniciar sesión con cualquier cuenta y realizar cualquier operación. Para decirlo de manera cruda, puedes hacer lo que quieras.

3.2. Clasificación de inyección SQL

Cuando el parámetro de entrada es un número entero, puede haber una vulnerabilidad numérica.

Cuando el parámetro de entrada es una cadena, puede existir una vulnerabilidad de inyección de caracteres. La mayor diferencia entre la inyección numérica y de caracteres es que los tipos numéricos no necesitan cerrarse con comillas simples, mientras que los tipos de caracteres generalmente deben cerrarse con comillas simples.

Lo más crítico acerca de la inyección de caracteres es cómo cerrar la declaración SQL y comentar el código redundante.

De hecho, creo que sólo existen dos tipos de inyección SQL: numérica y de caracteres. Mucha gente puede decir que existen otros métodos como: inyección de cookies, inyección POST, inyección retardada, etc.

Esto es cierto, pero estos tipos de inyecciones son, en última instancia, solo formas diferentes de inyección numérica y de caracteres o diferentes ubicaciones de inyección.

Los siguientes son algunos nombres de inyección comunes:

3.3. Medidas preventivas para la inyección SQL

Dondequiera que los usuarios ingresen, debemos evitar ataques de piratas informáticos. Nunca confíes en las entradas del usuario. . Por lo tanto, las medidas de defensa correspondientes son:

Después de separar el front-end y el back-end, el front-end entrará en contacto con muchas interfaces todos los días. Al enviar solicitudes de red, algunas interfaces utilizarán el método get. La forma más común de pasar parámetros es agregar parámetros directamente después de la dirección URL.

Si los datos se transmiten directamente de esta manera, si los datos son secuestrados o robados por una herramienta de captura de paquetes, se robarán directamente, lo cual es particularmente peligroso. Si se utiliza cifrado de interfaz, es el siguiente:

La larga cadena de símbolos incomprensibles de arriba son exactamente los datos cifrados.

El cifrado de interfaz consiste en cifrar los parámetros pasados ​​en la llamada de solicitud de interfaz. El propósito es garantizar la seguridad de los parámetros pasados ​​en la solicitud de interfaz y los resultados devueltos, en general, datos confidenciales, como tarjetas de identificación. , los números de teléfono, los números de cuenta, las contraseñas, etc. deben estar cifrados.

Métodos de cifrado comunes:

Existen muchos métodos de cifrado y puede elegir uno según sus necesidades específicas y el idioma del proyecto.

Los datos cifrados son más seguros, entonces, ¿podemos cifrar todos los datos en la interfaz? El cifrado consume muchos recursos. Si se cifra una gran cantidad de datos, llevará más tiempo devolverlos, lo que afectará directamente la experiencia del usuario. Entonces, cuando ciframos, solo necesitamos cifrar información importante y sensible.

Bueno, mi artículo de hoy termina aquí. Este artículo no presenta la seguridad web. ¡Bienvenido a comunicarnos en el área de comentarios!