Structured Query Language ( SQL) est une méthode de gestion des données stockées dans une base de données . SQL et langues apparentées sont souvent utilisés pour gérer les abonnements aux sites web et e -commerce. Une injection SQL est une méthode d' utilisation d'une requête SQL mal formée sur un site Web pour prendre le contrôle de la base de données SQL ou l'accès à des renseignements protégés , tels que les listes d'utilisateurs , mots de passe et adresses e-mail . Modification de vos pratiques de programmation permet de protéger votre site contre les attaques par injection SQL. Instructions
1
choisi une bibliothèque ou un cadre qui ne permet pas de requêtes non vérifiées responsable des injections SQL SQL. Énumération de faiblesse commune recommande couches de persistance , tels que Hibernate et Enterprise Java Beans , qui protègent contre les injections SQL lorsque installés et utilisés correctement .
2 traiter les requêtes SQL
utilisant des procédures stockées , des requêtes qui acceptent uniquement un paramètre ou autres déclarations préparées au lieu de requêtes ouvertes . Évitez dynamiquement construire des chaînes de requêtes SQL .
3
Évitez d'exécuter du code avec les privilèges excessifs. Pas tout le code doit être exécuté par un compte avec des privilèges root ou administrateur. Cela permettra d'atténuer la gravité d'une requête SQL compromise.
4
vérification de sécurité de répétition et la validation des entrées à la fois du côté client et côté serveur. Les attaquants peuvent modifier les valeurs en transit ou sur l'ordinateur des utilisateurs après validation de la saisie a été effectuée.
5
échapper les caractères spéciaux dans les requêtes SQL . Celles-ci pourraient inclure des caractères spéciaux , tels que des citations ou des opérateurs , comme les égaux espace signe et blanc.
6
Supposons que toutes les entrées est malveillant ou mal formés . Au lieu d'utiliser une liste noire des chaînes inacceptables pour les requêtes SQL, utilisez une liste blanche des requêtes connues, bien formatés .
7
Limit entrée à un ensemble de valeurs d'entrée fixes , comme dans le cas d'une liste des états ou pays , lorsque cela est possible .
8
messages d'erreur de fin de course à l'information minime . Les pirates peuvent utiliser des messages d'erreur détaillés pour obtenir plus d'informations sur votre système. Enregistrer l'erreur explicite à un journal du serveur plutôt que de l'afficher à l'utilisateur.
9
Utilisez un pare-feu pour se défendre contre des attaques par injection SQL. Utilisez des pare-feu de renom qui sont l'installation et entretenu correctement . Un pare-feu ne nie pas la nécessité d' une bonne programmation et ne protège pas de toutes les vulnérabilités .