The Burgund a dit:
Suis-je le seul à avoir eu ce type de tentative d'intrusion ?
Peut-être en ce moment, mais ce n'est pas rare d'en avoir, sur quel serveur que ce soit. Un hacker va pas te cibler toi, Jean DUPONT en particulier, mais balayer une plage d'IPs via un script et tenter la faille sur toutes ces IPs.
The Burgund a dit:
Et si connexion en 2 étapes ton code, pour passer sans MdP, est bon ?
Tout dépend de comment est fait le code de l'application attaquée. Ca peut ne rien changer, comme ça peut tout changer.
lanthalas a dit:
Oui Julesvil, je suis preneur d'un cours sur le sujet

ou d'un endroit ou récupérer de l'info histoire de me casser la tête les longues soirées d'hiver
Alors rapidement, en supposant que vous maitrisez quelques termes techniques, on va prendre un exemple d'une simple application développée en PHP/MySQL :
Un requête de connexion à la base de données de l'application pourrait ressemble à celle -là :
Code:
$sql = "SELECT * FROM user WHERE pseudo = '$pseudo' AND password = '$password'";
Ici, on met dans une variable PHP la requête de connexion, qu'on prépare à exécuter. Les apostrophes autour de $pseudo et $password qui sont des variables PHP qu'on récupère du formulaire indiquent qu'il s'agit de chaines de caractères.
Si tout se passe bien, que l'utilisateur entre ses identifiants correctement, la requête exécutée pour se connecter pourrait ressembler à :
Code:
SELECT * FROM user WHERE pseudo = 'admin' AND password = 'Mon mot de passe admin super compliqué parce que je pense kil est fort'
Ici, on récupère donc correctement le compte admin si son mot de passe compliqué entré est correct.
Maintenant, admettons que la personne pour se connecter n'a pas entré le pseudo "admin" dans le champ du formulaire, mais "admin'; --". On remplace donc $pseudo dans la requête et on regarde ce qui se passe :
Code:
$sql = "SELECT * FROM user WHERE pseudo = 'admin'; --' AND password = 'mot de passe erroné'";
Ici, peu importe donc que le mot de passe entré soit erroné, puisque le ";" termine la requête et le "--" met en commentaire le reste (ce qui fait que le mot de passe sera ignoré). La requête qui sera donc effectivement exécutée au serveur sera :
Code:
SELECT * FROM user WHERE pseudo = 'admin'
Si le compte admin existe donc bel et bien, le hacker sera connecté sur ton application en tant que admin, sans avoir à connaitre le mot de passe.
Pour se protéger de cette faille, il existe plein d'outils (normalement) connus des développeurs (consciencieux).
Si le sujet t'intéresse, tu peux trouver pas mal d'exemples sur Google en cherchant "SQL injection", que ce soit en anglais ou en français, comme :
https://kinsta.com/fr/blog/injections-sql/