Maison > Questions et réponses > le corps du texte
Je ne comprends pas en quoi l'utilisation d'un "challenge token" ajoute une quelconque forme de prévention : quelle valeur comparer à quoi ?
De l'OWASP :
D'une manière générale, les développeurs n'ont besoin que Générez ce jeton une fois Session actuelle. Après initialisation La génération de ce token, dont la valeur est stocké en session et utilisé Pour chaque demande ultérieure, jusqu'à La session a expiré.
Si je comprends bien le processus, voici ce qui se passe.
Je me connecte à http://example.com et crée une session/cookie contenant ce jeton aléatoire. Chaque formulaire contient ensuite une entrée masquée qui contient également une valeur aléatoire de la session, qui est comparée à la session/cookie lors de la soumission du formulaire.
Mais qu’est-ce que cela peut accomplir ? Ne vous contentez-vous pas d'obtenir les données de session, de les insérer dans la page et de les comparer exactement aux mêmes données de session ? Cela ressemble à un raisonnement circulaire. Ces articles continuent de parler du respect d'une "politique de même origine", mais cela n'a aucun sens puisque toutes les attaques CSRF proviennent de l'utilisateur et incitent simplement l'utilisateur à faire quelque chose qu'il n'a pas l'intention de faire.
Existe-t-il d'autres options que l'ajout du jeton en tant que chaîne de requête à chaque URL ? Cela semble très laid et peu pratique, et rend plus difficile la création de favoris pour les utilisateurs.
P粉7948519752023-10-24 11:47:30
L'imposteur a pris tout votre argent et a peut-être joué à la Xbox en sortant...
CSRF repose essentiellement sur le fait que vous ouvrez la porte de votre maison et que vous la laissez ensuite ouverte pour que quelqu'un d'autre puisse simplement entrer et se faire passer pour vous.
Lorsque vous ouvrirez la porte de votre maison pour la première fois, le portier vous remettra un morceau de papier sur lequel est écrit un chiffre long et très aléatoire :
Maintenant, si vous voulez entrer dans votre maison, vous devez montrer ce morceau de papier au portier pour entrer.
Alorsmaintenantquand un imposteur tente d'entrer dans votre maison, le portier demandera :
"Quel est le nombre aléatoire écrit sur le papier ?"
Si l'imposteur n'a pas les bons numéros, il ne peut pas entrer. Soit il doit deviner correctement le nombre aléatoire - une tâche très difficile. Pour ne rien arranger, le nombre aléatoire n’est valable que 20 minutes (par exemple). Sachez donc que l’imitateur doit deviner correctement, et pas seulement, il n’a que 20 minutes pour obtenir la bonne réponse. C'est tellement fatigant ! Alors il a abandonné.
Bien sûr, cette analogie est un peu tirée par les cheveux, mais j'espère qu'elle aidera.
**crud = (créer, lire, mettre à jour, supprimer)
P粉1210816582023-10-24 00:28:04
L'attaquant ne peut pas obtenir le jeton. La demande ne prendra donc pas effet.
Je recommande cet article de Gnucitizen. Il a une assez bonne explication de CSRF : http://www.gnucitizen.org/blog/csrf-revealed/