Red de conocimiento informático - Problemas con los teléfonos móviles - Vulnerabilidades de seguridad en la verificación de contraseñas de declaraciones Sql

Vulnerabilidades de seguridad en la verificación de contraseñas de declaraciones Sql

La declaración SQL, como declaración de consulta de base de datos estándar internacional, se ha utilizado ampliamente en varios entornos de programación. Como sistema maduro y estable, el inicio de sesión del usuario y la verificación de la contraseña son esenciales. En mi trabajo de programación habitual, descubrí que muchos programadores utilizan este tipo de declaraciones para verificar las contraseñas de los usuarios.

Sql= Seleccione * de la tabla de usuarios, donde nombre = +nombre+ y contraseña = +contraseña+

Entre ellos, nombre y contraseña se utilizan para almacenar el nombre de usuario y la contraseña ingresados ​​por el usuario. Al ejecutar la declaración anterior, podemos verificar si el usuario y la contraseña son legales y válidos, pero mediante el análisis, podemos encontrar que existe una vulnerabilidad fatal en la declaración anterior. Cuando ingresamos la siguiente cadena en el nombre de usuario, o = y luego ingresamos la contraseña casualmente. Después de configurarlo para el reemplazo de variables aaaa, la declaración SQL se convierte en la siguiente cadena.

Sql= Seleccionar * de la tabla de usuarios, donde nombre = o = y contraseña = aaaa

Todos sabemos que la instrucción select ignorará la operación o (o) al juzgar la consulta condiciones Las siguientes operaciones, pero en la declaración anterior, el valor de = siempre es verdadero, lo que significa que no importa qué valor se ingrese en la contraseña, ¡puede pasar la verificación de contraseña anterior! La solución a este problema es sencilla y hay muchas formas de hacerlo. El más común es determinar la legalidad del nombre de usuario y la contraseña ingresados ​​por el usuario antes de la verificación, y no se permite ingresar caracteres especiales como comillas simples y signos iguales.

Lishi Xinzhi/Article/program/SQL/201311/16325