Este artículo estudia principalmente una pregunta relativamente común en las preguntas de la entrevista de Java y los problemas de juzgar y prevenir la inyección de SQL. Los detalles son los siguientes.
La inyección de SQL es el método de ataque más utilizado para hackers en la actualidad. Su principio es utilizar la base de datos para analizar identificadores especiales para pasarlos por la página de la página al fondo. Cambie la estructura de la instrucción SQL, lograr permisos extendidos, crear usuarios de alto nivel, modificar por la fuerza la información del usuario y otras operaciones.
A través del principio de inyección SQL, sabemos que juzgar los datos de que la inyección de SQL puede pasar a través de la página, ¡los antecedentes no deben creer en ningún dato que se haya pasado desde el fondo, especialmente los parámetros enteros especiales y los parámetros especiales de carácter!
1. Verifique el tipo de datos variables y el formato
Siempre que sea una variable en un formato fijo, antes de ejecutar la instrucción SQL, debe verificarse estrictamente en el formato fijo para garantizar que la variable sea el formato que esperábamos.
2. Filtrar símbolos especiales
Para las variables que no se pueden determinar en un formato fijo, se deben usar símbolos especiales para procesarlas o transferirlas. Hay ambigüedad en SQL.
Cuando subimos fotos
enctype =/"multipart/form-data/" enctype = "multipart/form-data"
Sin "/", el cifrado = "multipart/formy-data" en la forma significa establecer la codificación MIME de la forma. Por defecto, este formato de codificación es Application/X-WWW-Form-URLEncoded, que no se puede utilizar para la carga de archivos; Solo mediante el uso de datos multipart/formulario se puede pasar completamente los datos del archivo y se realizan las siguientes operaciones.
3. Vincule las variables y use declaraciones precompiladas
De hecho, el uso de declaraciones precompiladas para unir variables es la mejor manera de evitar la inyección de SQL, y la semántica del uso de declaraciones SQL precompiladas no cambiará. En las declaraciones SQL, ¿usa un signo de interrogación para las variables? Significa que no importa cuán capaz sea un hacker, no puede cambiar el formato de las declaraciones SQL, y evita fundamentalmente la aparición de ataques de inyección SQL.
4. Seguridad de cifrado de información de bases de datos
A veces, cuando se filtra la información de la base de datos, debemos cifrar la contraseña de la base de datos y otra información (MD5, etc.), de modo que la información se filtre y las pérdidas se pueden controlar dentro de un cierto rango.
1. No abra un entorno de producción para resumir la visualización de errores del servidor web.
2. Nunca creas en la entrada variable del lado del usuario. Las variables con formatos fijos deben verificarse estrictamente. Las variables sin formatos fijos deben realizar los caracteres especiales de filtrado y escape necesarios, como citas.
3. Use declaraciones SQL precompiladas que vinculen variables
4. Haz un buen trabajo en la gestión de permisos de la cuenta de la base de datos
5. Información confidencial del usuario estrictamente cifre y procesa
Un buen programa debe prestar atención a la seguridad, de lo contrario solo es adecuado para practicar.
Lo anterior es todo el contenido de este artículo sobre el análisis de las preguntas de la entrevista de Java y la prevención de la inyección de SQL. Espero que sea útil para todos. Los amigos interesados pueden continuar referiéndose a otros temas relacionados en este sitio. Si hay alguna deficiencia, deje un mensaje para señalarlo. ¡Gracias amigos por su apoyo para este sitio!