Maison  >  Article  >  base de données  >  En savoir plus sur l'injection SQL et la prévention

En savoir plus sur l'injection SQL et la prévention

php中世界最好的语言
php中世界最好的语言original
2018-03-05 15:30:522955parcourir

Cet article analyse en détail les points de connaissances liés à l'injection SQL à travers la comparaison de SQL et MYSQL, ainsi que les principes de l'injection SQL et comment empêcher l'injection SQL. J'espère que cela pourra aider certaines personnes dans le besoin.

1. Qu'est-ce que l'injection SQL ?

L'injection SQL est une technique d'attaque qui ajoute du code SQL aux paramètres d'entrée et le transmet au serveur SQL pour analyse et exécution

2 Comment est-ce arrivé ?

Les développeurs Web ne peuvent pas garantir que toutes les entrées ont été filtrées

Un attaquant utilise les données d'entrée envoyées au serveur SQL pour construire du code SQL exécutable

La base de données est pas Effectuer les configurations de sécurité correspondantes

3. Comment trouver les vulnérabilités SQL ?

Identifier tous les points d'entrée dans l'application web

Comprendre quels types de requêtes déclenchent des exceptions ? (Caractère spécial " ou ')

Détecter les exceptions dans la réponse du serveur

4. Comment effectuer une attaque par injection SQL ?

Injection de numéro :

Sélectionnez * dans le nom de la table où id=1 ou 1=1 ;

Injection de chaîne :

Fonction de commentaire de MySQL :

Les caractères après # et -- sont commentés et la requête sera correcte quel que soit le mot de passe saisi. Veuillez cliquer ici pour saisir la description de l'image

5. 🎜>

Vérifiez strictement le format d'entrée : is_numeric(var), vérification de validation de tp5, l'injection de chaîne utilise une expression régulière pour voir si elle est entre [A-Za-z]

escape : addlashes (str),

fonction mysqli_escape_string() pour échapper

6. Mécanisme de précompilation de MySQLi

Liaison paramétrée

La liaison paramétrée est un autre obstacle pour empêcher l'injection SQL. PHP MySQLi et PDO fournissent une telle fonction. Par exemple, MySQLi peut interroger comme ceci :

. PDO est encore plus pratique, comme :

Recommandations associées :

Méthodes de sites Web d'injection SQL

Partage des méthodes PHP simples et efficaces pour empêcher l'injection SQL

Explication des méthodes PHP pour empêcher l'injection 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:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn