//-->Définition du fuseau horaire à utiliser.//
date_default_timezone_set("Europe/Paris");
//-->Création dynamique des noms des champs.//
$_SESSION['form_connexion'] = md5('connexion' . date('r')); #Création nom bouton 'Connexion' crypté et ajout de la date au format RFC 2822.
$_SESSION['form_login'] = md5('login' . date('r')); #Création du champ 'login' crypté et ajout de la date au format RFC 2822.
$_SESSION['form_pass'] = md5('pass' . date('r')); #Création du champ 'password' crypté et ajout de la date au format RFC 2822.
//->Création du formulaire de connexion.//
$form_connexion = 'Login :<input name="' . $_SESSION['form_login'] .
'" style="width: 80px" type="text" value="" /><br />
Pass : <input name="' . $_SESSION['form_pass'] .
'" style="width: 80px" type="password" value="" /><br />
<input name="' . $_SESSION['form_connexion'] .
'" type="submit" value="Connexion" /></div>';
Donc les noms des champs sont crypté ET change a chaque tentative de connexion (alors pour les forces brute bonne chance)
Ce que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.
Ah oui va falloir m'expliquer ça, comment il fait ton robot pour connaitre le nom des mes champs ,le login et le pass du premier coup.Dunbar, je peux te faire en quelques minutes un robot qui va sur la page d'accueuil, analyse la source et renvoi le formulaire complété. C'est plus long qu'un brute force conventionnel mais ca marche même avec ta protection.
Mais je prends note de vos astuces.
Ce que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.
Ce que l'on apprend par l'effort reste toujours ancré beaucoup plus longtemps.
Meuh non ca ne change rien, l'absence d'information permettant l'identification du champ login par rapport au champ password ne change absolument rien, un bruteforce comme son nom l'indique c'est un truc brutal, bête et méchant, on teste tout un milliard de fois jusqu'a ce que ca passe, tout ce que tu fais c'est multiplié les proba par 3 vu que chaque combinaison doit etre testée sur chaque champ. En revanche la remarque de sekil est plus intéressante, le fait d'allonger par voie de timeout chaque tentative en erreur c'est bien, le seul soucis c'est que le bruteforce à alors un moyen de mettre ton serveur sur les genoux, le mieux est de repérer le nombre d'erreur et de faire des blacklist d'ip de 24h dans le firewall comme stopher disait au début du thread.Bon je recommence.
Je crée une SESSION.
Je génère les noms des champs en utilisant une signature MD5 + la date + H.M.S.
Une fois générer ces valeurs sont en SESSION.
Donc libre à l’utilisateur de prendre 5 minutes pour remplir le formulaire ces valeurs ne change qu’a chaque invocation de la page.
Donc pour l’utilisateur c’est invisible mais pour un boot lui qui va faire grand nombre d’essai, les valeurs change à chaque fois, donc pour que l’attaque fonctionne il lui faut trouver en une seule fois, les 3 noms de champs, le login, et le password, tu avoueras quand-même que c’est une protection relativement efficace.