injection SQL est la forme la plus courante de piratage site, il arrive quand un utilisateur affecte votre base de données sans autorisation en utilisant le code SQL. Par exemple:.
Un site vunerable a une page de connexion, le mot de passe est Feild pas protégé contre l'injection SQL, quand un pirate voit cela, ils tapent 'OU' '=' dans le Feild passe
< p> La connexion est traitée comme ceci:
SELECT * FROM `users` où username = '$ username' et le mot de passe = '$ password'
Maintenant, nous allons insérer nos valeurs:
SELECT * FROM `users` où username = 'admin' et le mot de passe = '' OU '' = ''
Notez que la vérification de mot de passe a été contournée.
Maintenant, le code dit pour sélectionner tout utilisateur si le mot de passe est égale à rien ou rien ne vaut rien, ce qui est toujours vrai, alors ce sera le premier utilisateur de sélectionner dans la base de données, qui est le plus communément le compte administrateur.
Il existe de nombreuses méthodes pour prévenir une injection SQL, certains sont plus faciles et mieux, mais je pense que sa pratique pour savoir plus d'un. Fondamentalement, l'idée principale est d'arrêter, ou encoder le apostrophy
Addslashes ()
Dans codage PHP il ya une fonction appelée addslashes. Cette fonction ajoute des barres obliques inverses avant tous les caractères qui pourraient causer des dommages à votre base de données, ou tromper en donnant des informations Wrog. Un exemple peut être vu ci-dessous:
Qui est cet homme? serait inséré dans la base de données Qui est cet homme? (Cela ne veut pas la base de données de sécurité)
Lorsque vous utilisez addslashes:
addslashes (? Qui est cet homme) seraient insérées dans la base de données de l 'Qui \\ que l'homme? (ce qui est la base de données de sécurité)
Avoir une oblique avant le 'signifie que la base de données ne reconnaît pas le code SQL comme valide, et ignore simplement
cryptage
< . p> Le cryptage signifie que l'information qui est envoyé par le biais est crypté avant d'être envoyé à la base de données pour la validation, ce qui signifie que les informations contenues dans la base de données doit également être encryped cependant
Certaines formes de chiffrement comprennent: