Maison >base de données >tutoriel mysql >Comment empêcher l'injection SQL dans la sécurité Web

Comment empêcher l'injection SQL dans la sécurité Web

little bottle
little bottleavant
2019-04-29 13:27:183264parcourir

L'injection SQL consiste à insérer une commande SQL dans un formulaire Web pour soumettre ou saisir un nom de domaine ou une chaîne de requête pour une demande de page, et finalement inciter le serveur à exécuter des commandes SQL malveillantes. Par exemple, de nombreux sites Web de films et de télévision précédents. Les mots de passe des membres VIP divulgués via les caractères de requête sont exposés lors de la soumission d'un formulaire WEB. Ce type de formulaire est particulièrement vulnérable aux attaques par injection SQL.

Principe d'injection SQL

Lorsqu'une application utilise le contenu d'entrée pour construire des instructions SQL dynamiques pour accéder au base de données Quand, une attaque par injection SQL se produit. L'injection SQL peut également se produire si le code utilise des procédures stockées transmises sous forme de chaînes contenant une entrée utilisateur non filtrée.

L'injection SQL peut permettre à un attaquant d'utiliser la connexion à l'application pour exécuter des commandes dans la base de données. Ce problème peut devenir grave si une application utilise un compte surprivilégié pour se connecter à la base de données. Dans certains formulaires, le contenu saisi par l'utilisateur est directement utilisé pour construire des commandes SQL dynamiques, ou est utilisé comme paramètres d'entrée pour des procédures stockées. Ces formulaires sont particulièrement vulnérables aux attaques par injection SQL. Lorsque de nombreux programmes de sites Web sont écrits, la légalité des entrées de l'utilisateur n'est pas jugée ou les variables du programme ne sont pas gérées correctement, ce qui entraîne des risques de sécurité dans l'application. De cette manière, l'utilisateur peut soumettre un code de requête de base de données et obtenir des informations sensibles ou contrôler l'ensemble du serveur en fonction des résultats renvoyés par le programme, de sorte qu'une injection SQL se produit.

Comment empêcher l'injection SQL ?

  1. Ne faites jamais confiance aux entrées des utilisateurs. Pour vérifier la saisie de l'utilisateur, vous pouvez utiliser des expressions régulières ou limiter la longueur ; puis convertir des symboles sensibles tels que des guillemets simples et des doubles "-".
  2. N'utilisez pas d'assemblage dynamique de SQL. Vous pouvez utiliser du SQL paramétré ou utiliser directement des procédures stockées pour la requête et l'accès aux données.
  3. N'utilisez jamais de connexions à la base de données de l'administrateur, utilisez des connexions à la base de données distinctes avec des autorisations limitées pour chaque application
  4. Ne stockez pas directement les informations confidentielles, ne cryptez ou ne hachez pas les mots de passe et les informations sensibles.
  5. Les informations d'exception de l'application doivent donner le moins d'indices possible. Il est préférable d'utiliser des informations d'erreur personnalisées pour envelopper les informations d'erreur d'origine.

Tutoriels associés : Tutoriel vidéo SQL

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer