recherche
Maisondéveloppement back-endTutoriel PythonUne introduction à la méthode Tornado pour prévenir les attaques intersites en Python

Cet article vous présente la méthode de Tornado pour prévenir les attaques intersites en Python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer. J'espère qu'il vous sera utile.

La falsification de requêtes intersites (CSRF ou XSRF) est une utilisation malveillante d'un site Web. Grâce à CSRF, les attaquants peuvent usurper l'identité de l'utilisateur et effectuer des opérations malveillantes à l'insu de l'utilisateur.

1. Principe d'attaque CSRF

La figure suivante montre le principe de base du CSRF. Site1 est un site Web présentant des vulnérabilités CSRF et SIte2 est un site Web malveillant comportant des attaques.

Une introduction à la méthode Tornado pour prévenir les attaques intersites en Python
Le contenu de l'image ci-dessus est analysé comme suit :

  • L'utilisateur a visité pour la première fois le Site1, un site Web présentant des vulnérabilités CSRF, et s'est connecté avec succès et les cookies obtenus. Après cela, toute la visite de l'utilisateur sur Site1 portera le cookie de Site1, elle est donc considérée comme une opération valide par Site1.

  • À ce moment-là, l'utilisateur a visité le Site2, un site au comportement offensant, et la page de retour du Site2 contenait un lien pour visiter le Site1 pour des opérations malveillantes, mais il était déguisé en contenu légitime , par exemple, le lien hypertexte suivant ressemble à une information de loterie, mais il souhaite en réalité soumettre une demande de retrait au site Site1

<a>
三百万元抽奖,免费拿
</a>
  • Une fois que l'utilisateur clique sur le lien malveillant, et envoie une requête au site Site1 sans le savoir. Étant donné que l'utilisateur s'est déjà connecté au Site1 et ne s'est pas déconnecté, lorsque le Site1 reçoit la demande de l'utilisateur et le cookie qui l'accompagne, il considérera la demande comme une demande normale envoyée par l'utilisateur. À ce stade, l’objectif du site malveillant a été atteint.

2. Utilisez Tornado pour empêcher les attaques CSRF

Afin d'empêcher les attaques CSRF, chaque requête doit inclure une valeur de paramètre en tant que valeur de paramètre. stockage correspondant pour le jeton La valeur correspondante dans le cookie.

Les applications Tornado peuvent fournir des jetons à la page via un en-tête de cookie et un élément de formulaire HTML caché. De cette façon, lorsque le formulaire d'une page légitime est soumis, il inclura les valeurs du formulaire et les cookies stockés. Si les deux correspondent, la demande d’approbation de la demande Tornado est valide.

L'activation de la fonction de prévention CSRF de Tornado nécessite deux étapes.

[1] Passer le paramètre xsrf_cookies=True lors de l'instanciation de tornado.web.Application, soit :

application=tornado.web.Application([
(r'/',MainHandler),
],
cookie_secret='DONT_LEAK_SECRET',
xsrf_cookies=True,
)

ou :

settings={
"cookie_secret":"DONT_LEAK_SECRET",
"xsrf_cookies":True
}

application=tornado.web.Application([
(r'/',MainHandler),
],**settings)

lors de tornade. Lorsque web.Application doit initialiser trop de paramètres, vous pouvez transmettre des paramètres nommés sous la forme d'un dictionnaire de paramètres comme cet exemple

[2] Dans chaque fichier modèle avec expression HTML, ajoutez la balise de fonction xsrf_form_html() , tels que :


{% module xsrf_form_html() %}

Le {% module xsrf_form_html() %} joue ici le rôle d'ajouter des éléments cachés au formulaire pour empêcher les requêtes cross-sites.

La prise en charge sécurisée des cookies et le cadre de prévention XSRF réduisent considérablement la charge des développeurs d'applications. Sans eux, les développeurs doivent réfléchir à de nombreuses mesures de prévention détaillées, les fonctionnalités de sécurité intégrées de Tornado sont donc également très utiles.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer
Python et temps: tirer le meilleur parti de votre temps d'étudePython et temps: tirer le meilleur parti de votre temps d'étudeApr 14, 2025 am 12:02 AM

Pour maximiser l'efficacité de l'apprentissage de Python dans un temps limité, vous pouvez utiliser les modules DateTime, Time et Schedule de Python. 1. Le module DateTime est utilisé pour enregistrer et planifier le temps d'apprentissage. 2. Le module de temps aide à définir l'étude et le temps de repos. 3. Le module de planification organise automatiquement des tâches d'apprentissage hebdomadaires.

Python: jeux, GUIS, et plusPython: jeux, GUIS, et plusApr 13, 2025 am 12:14 AM

Python excelle dans les jeux et le développement de l'interface graphique. 1) Le développement de jeux utilise Pygame, fournissant des fonctions de dessin, audio et d'autres fonctions, qui conviennent à la création de jeux 2D. 2) Le développement de l'interface graphique peut choisir Tkinter ou Pyqt. Tkinter est simple et facile à utiliser, PYQT a des fonctions riches et convient au développement professionnel.

Python vs C: applications et cas d'utilisation comparésPython vs C: applications et cas d'utilisation comparésApr 12, 2025 am 12:01 AM

Python convient à la science des données, au développement Web et aux tâches d'automatisation, tandis que C convient à la programmation système, au développement de jeux et aux systèmes intégrés. Python est connu pour sa simplicité et son écosystème puissant, tandis que C est connu pour ses capacités de contrôle élevées et sous-jacentes.

Le plan Python de 2 heures: une approche réalisteLe plan Python de 2 heures: une approche réalisteApr 11, 2025 am 12:04 AM

Vous pouvez apprendre les concepts de programmation de base et les compétences de Python dans les 2 heures. 1. Apprenez les variables et les types de données, 2. Flux de contrôle maître (instructions et boucles conditionnelles), 3. Comprenez la définition et l'utilisation des fonctions, 4. Démarrez rapidement avec la programmation Python via des exemples simples et des extraits de code.

Python: Explorer ses applications principalesPython: Explorer ses applications principalesApr 10, 2025 am 09:41 AM

Python est largement utilisé dans les domaines du développement Web, de la science des données, de l'apprentissage automatique, de l'automatisation et des scripts. 1) Dans le développement Web, les cadres Django et Flask simplifient le processus de développement. 2) Dans les domaines de la science des données et de l'apprentissage automatique, les bibliothèques Numpy, Pandas, Scikit-Learn et Tensorflow fournissent un fort soutien. 3) En termes d'automatisation et de script, Python convient aux tâches telles que les tests automatisés et la gestion du système.

Combien de python pouvez-vous apprendre en 2 heures?Combien de python pouvez-vous apprendre en 2 heures?Apr 09, 2025 pm 04:33 PM

Vous pouvez apprendre les bases de Python dans les deux heures. 1. Apprenez les variables et les types de données, 2. Structures de contrôle maître telles que si les instructions et les boucles, 3. Comprenez la définition et l'utilisation des fonctions. Ceux-ci vous aideront à commencer à écrire des programmes Python simples.

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures?Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures?Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu?Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu?Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

See all articles

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
4 Il y a quelques semainesBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: Comment déverrouiller tout dans Myrise
1 Il y a quelques moisBy尊渡假赌尊渡假赌尊渡假赌

Outils chauds

PhpStorm version Mac

PhpStorm version Mac

Le dernier (2018.2.1) outil de développement intégré PHP professionnel

SublimeText3 version anglaise

SublimeText3 version anglaise

Recommandé : version Win, prend en charge les invites de code !

Version Mac de WebStorm

Version Mac de WebStorm

Outils de développement JavaScript utiles

Adaptateur de serveur SAP NetWeaver pour Eclipse

Adaptateur de serveur SAP NetWeaver pour Eclipse

Intégrez Eclipse au serveur d'applications SAP NetWeaver.

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP