CSRF Attack [Protection mineur]

Nobodief

Nobodief Le 18 juillet 2016 à 11:45 (Édité le 25 janvier 2019 à 17:51)

Salut la compagnie, cela fait un moment que je traîne sur le forum est ont ne parle pas beaucoup de la csrf attack.

Explication. 
La "faille" csrf attack, enfin ce n'est pas vraiment une faille, le principe est très simple, un utilisateur va récupérer le chemin des traitements d'informations POST d'un formulaire dans la barre url et va s'amuser à créer un lien invisible pour vous faire modifier certaines informations de votre compte et puis lorsque vous cliquez sur ce lien, vos données changent miraculeusement.

Là où c'est plus grave c'est pour les sites qui mettent à disposition des utilisateurs des actions sensibles non protéger (changement d'identifiant, de mot de passe, suppression de compte) et c'est là où cette action risque de faire mal.

C'est une faille mineure, elle à un impact important et peut causer des dommages, mais est rarement utilisé par les pirates, mais une simple méthode permet déjà de vous en protéger .

Protection.
La première solution que nous allons parler aujourd'hui est :
$_SERVER['HTTP_REFERER']
Cette fonction permet de vérifier la page antérieur qui à conduit l'utilisateur à sa page actuel précisément, imaginons que notre formulaire est présent sur notre page "settings.php" :
if($_SERVER['HTTP_REFERER'] == "http://www.monsite.fr/settings.php"){
} else {
    echo 'Erreur';
}
Dans se cas la notre code va vérifier que la page d'où l'utilisateur provient est : settings.php, si l'utilisateur exécute sont formulaire depuis une autre page (index.php)  cela ne fonctionnera pas.

Conclusion.
Il est important de protéger ce genre de problème, surtout lorsque l'on permet à nos utilisateurs de modifier des informations importantes ou de réaliser des actions d'une très grosse ampleurs.

Cette petite fonction présenté est une petite protection qui est utile si vous n'en avez pas, la meilleure solution à l'heure actuelle est de réaliser un code qui génère des tokens temporaires pour effectuer le changement.
firasfatnassi55

firasfatnassi55 Le 20 juillet 2016 à 10:53

comment tester CSRF attack 
Nobodief

Nobodief Le 24 juillet 2016 à 17:23 (Édité le 24 juillet 2016 à 17:24)

Et bien lorsque tu crée un formulaire de type (post) ou de type (get) tu passe en url tout tes champs avec les valeurs, du type
page.php?pseudonyme=mathieu&password=abcdef&nationnalité=france...
Imaginons maintenant que tu veuille utiliser la csrf attack tu va créer un lien :
http://www.monsite.com/page.php?pseudonyme=mathieu&password=abcdef&nationnalité=france
Tu va cacher le lien :

[EPIC] UN AVION SORT DE L'OCÉAN

Et l'utilisateur va cliquer depuis une page de google admettons et cela va tout de même passer les paramètres de ton formulaire, même si le lien provient d'un site tiers ou d'une autre page de ton site.

Avec HTTP_REFERER ton formulaire doit-être exécuter depuis la page défini, si ce n'est pas le cas il bloque.
Le_Futuriste

Le_Futuriste Le 25 juillet 2016 à 11:31 (Édité le 25 juillet 2016 à 11:31)

Merci pour ce tuto très sympa 😀
Vous devez être connecté pour poster une réponse. Se connecter ou Créer un compte