Vulnerabilidades de seguridad en la verificación de contraseñas de declaraciones Sql
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