Les failles du oueb
mardi 9 avril 2013 à 12:59Les failles qui hantent la toile
- Cross-site request forgery ou CSRF => comprendre et s'en protéger
- Cross-site scripting ou XSS => comprendre et s'en protéger
- Injection SQL => comprendre et s'en protéger
Chiffrement des mots de passe
Il faut oublier MD5 et autres SHA1, et passer à du lourd comme l'algorithme Blowfish :
<?php
// Créer le mot de passe
(string)$sel = substr(str_replace('+', '.', base64_encode(pack('N4', mt_rand(), mt_rand(), mt_rand(), mt_rand()))), 0, 22);
(string)$hash = crypt('mot de passe', '$2x$11$'.$sel);
// Vérifier un mot de passe
if ( crypt($_POST['mot_de_passe'], $hash) === $hash ) {
// Mot de passe correct !
}
?>
Le sel passé à la fonction crypt est formé tel que <algorithme><itérations>$<sel> où :- <algorithme> : vaut $2x$ ou $2y$ si disponible (éviter d'utiliser $2a$)
- <itérations> : compris en 04 et 31, il s'agit du nombre d'itérations (compléxité), plus il est proche de 31, mieux c'est, mais de beaucoup de patience t'armer il faudra
- <sel> : chaîne de 22 caractères compris dans l'alphabet [./0-9A-Za-z]