lenguaje de consulta estructurado ( SQL ) es un método de gestión de los datos almacenados en una base de datos . SQL y lenguajes relacionados a menudo se utilizan para gestionar las suscripciones de sitios web y de comercio electrónico. La inyección SQL es un método de uso de una consulta SQL con formato incorrecto en un sitio web para obtener el control de la base de datos SQL o el acceso a la información protegida, tales como listas de usuarios , contraseñas y direcciones de correo electrónico . La alteración de las prácticas de programación puede proteger a su sitio web desde los ataques de inyección SQL. Instrucciones
1
Escoge una biblioteca o un marco que no permite consultas sin verificar responsable de inyecciones SQL SQL . Enumeración Debilidad Común recomienda capas de persistencia , como Hibernate y Enterprise Java Beans , que protegen de la inyección de SQL cuando se instala y se utiliza correctamente.
2 consultas SQL de proceso
utilizando procedimientos almacenados , consultas que sólo aceptan un parámetro o otras declaraciones preparadas en lugar de consultas abiertas . Evite dinámicamente construir cadenas de consulta SQL.
3
Evite ejecutar código con privilegios excesivos. No todo el código debe ser dirigido por una cuenta con privilegios de root o administrador. Esto mitigará la gravedad de cualquier consulta SQL comprometida.
4
control de seguridad de repetición y validación de entrada en el lado del cliente y del servidor . Los atacantes pueden modificar los valores en tránsito o en el ordenador del usuario después de haber realizado la validación de entrada .
5
Escapa caracteres especiales de las consultas SQL . Estos pueden incluir caracteres especiales como comillas o los operadores , tales como el espacio de igual signo y blanco.
6
Asumir toda la entrada es malicioso o mal formados . En lugar de utilizar una lista negra de cadenas inaceptables para consultas SQL , utilice una lista blanca de conocidos consultas, bien formateados.
7
entrada del límite de un conjunto de valores de entrada fija , como en el caso de un lista de los estados o países , cuando sea posible.
8
mensajes de error límite a la información sólo mínimo. Los atacantes pueden utilizar mensajes de error detallados para obtener más información sobre el sistema. Entrar el error explícita a un registro del servidor en lugar de mostrar al usuario .
9
Utilice un firewall para defenderse de algunos ataques de inyección SQL. Utilice firewalls renombre que son la configuración y el mantenimiento adecuado . Un firewall no niega la necesidad de una programación adecuada y no protegerá de todas las vulnerabilidades .