Forum
notre selection
 
Pseudo: Pass: Inscription
 

Tutoriaux développement et référencement

 
Développement
+ Sécuriser son site
+ Cache Sql
+ Backup automatique de bases de données
+  
 
Référencement
+ Url Rewriting
+ Liens sponsorisés
+ Backup automaitque de bases de données
   

Sécuriser son site contre les hackers (SQL Injection, Upload, ...)

 

On a tous débuter un jour le developpement de site, sans penser que notre code source pouvait contenir des failles qui pourraient permettrent à des personnes malveillantes d'effectuer des tâches qu'elles n'auraient pas du faire ou encore de se connecter à un compte qui n'est pas le sien.
Nous allons voir comment éviter au maximum ce genre de situation.

SQL Injection:

Le SQL Injection consiste à placer dans le champ d'un formulaire un morceau de requête SQL plutôt qu'un login ou un mot de passe.
Du fait ne pas s'en protéger pourrait permettre à une personne de se connecter à un compte ne lui appartenant pas ou alors de se connecter avec le dernier compte crée.
Les nouvelles versions de php, des quote (') sont automatiquement ajoutées devant les variables de formulaire mais les plus anciennes ne sont pas protégées.


Voici un exemple:

Rendez vous sur la page d'exemple d'SQL Injection

Sur notre exemple, il y a 2 inscrits dont le pseudo sont "jdp" et 'marc10", notre serveur possède une version récente de PHP, nous n'aurons pas de problème, mais pour simuler une ancienne version, nous avons utilisé la fonction stripslashes qui va enlever les quotes ajoutées automatiquement.

Essayez n'importe quel pseudo/mot de passe puis essayez avec ''' OR pseudo='jdp dans le champ pseudo. Vous pourrez dès à present vous connecter avec n'importe quel pseudo.


Comment y remédier, plusieurs solutions:

- Procédez en 2 étapes dans vos requêtes:
Une pour le select sur Pseudo uniquement
$sql="SELECT * FROM membres WHERE pseudo='$_POST["pseudo"]";
[...]
if($row["password"]==$_POST["password"])
[...]


- Ajoutez des quote avec stripslashes,

- N'autorisez que les chiffres et lettres:
$is_alpha = ereg("^[0-9A-Za-z]+$", $chaine);

   
Comparatif affiliation est édité par la société deventic
Comparatif adsl - Jeux concours - Colocation - Affiliation - Test Eligibilité - Vide-greniers - Affiliation Webmasters