Maison développement back-end Tutoriel Python Une introduction à la méthode Tornado pour prévenir les attaques intersites en Python

Une introduction à la méthode Tornado pour prévenir les attaques intersites en Python

Oct 20, 2018 pm 03:28 PM
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>
Copier après la connexion
  • 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,
)
Copier après la connexion

ou :

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

application=tornado.web.Application([
(r'/',MainHandler),
],**settings)
Copier après la connexion

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 :

Copier après la connexion
{% 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 de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

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)
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Commandes de chat et comment les utiliser
1 Il y a quelques mois By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

PHP et Python: exemples de code et comparaison PHP et Python: exemples de code et comparaison Apr 15, 2025 am 12:07 AM

PHP et Python ont leurs propres avantages et inconvénients, et le choix dépend des besoins du projet et des préférences personnelles. 1.Php convient au développement rapide et à la maintenance des applications Web à grande échelle. 2. Python domine le domaine de la science des données et de l'apprentissage automatique.

Explication détaillée du principe docker Explication détaillée du principe docker Apr 14, 2025 pm 11:57 PM

Docker utilise les fonctionnalités du noyau Linux pour fournir un environnement de fonctionnement d'application efficace et isolé. Son principe de travail est le suivant: 1. Le miroir est utilisé comme modèle en lecture seule, qui contient tout ce dont vous avez besoin pour exécuter l'application; 2. Le Système de fichiers Union (UnionFS) empile plusieurs systèmes de fichiers, ne stockant que les différences, l'économie d'espace et l'accélération; 3. Le démon gère les miroirs et les conteneurs, et le client les utilise pour l'interaction; 4. Les espaces de noms et les CGROUP implémentent l'isolement des conteneurs et les limitations de ressources; 5. Modes de réseau multiples prennent en charge l'interconnexion du conteneur. Ce n'est qu'en comprenant ces concepts principaux que vous pouvez mieux utiliser Docker.

Comment entraîner le modèle Pytorch sur Centos Comment entraîner le modèle Pytorch sur Centos Apr 14, 2025 pm 03:03 PM

Une formation efficace des modèles Pytorch sur les systèmes CentOS nécessite des étapes, et cet article fournira des guides détaillés. 1. Préparation de l'environnement: Installation de Python et de dépendance: le système CentOS préinstalle généralement Python, mais la version peut être plus ancienne. Il est recommandé d'utiliser YUM ou DNF pour installer Python 3 et Mettez PIP: sudoyuMupDatePython3 (ou sudodnfupdatepython3), pip3install-upradepip. CUDA et CUDNN (accélération GPU): Si vous utilisez Nvidiagpu, vous devez installer Cudatool

Comment est la prise en charge du GPU pour Pytorch sur Centos Comment est la prise en charge du GPU pour Pytorch sur Centos Apr 14, 2025 pm 06:48 PM

Activer l'accélération du GPU Pytorch sur le système CentOS nécessite l'installation de versions CUDA, CUDNN et GPU de Pytorch. Les étapes suivantes vous guideront tout au long du processus: CUDA et CUDNN Installation détermineront la compatibilité de la version CUDA: utilisez la commande NVIDIA-SMI pour afficher la version CUDA prise en charge par votre carte graphique NVIDIA. Par exemple, votre carte graphique MX450 peut prendre en charge CUDA11.1 ou plus. Téléchargez et installez Cudatoolkit: visitez le site officiel de Nvidiacudatoolkit et téléchargez et installez la version correspondante selon la version CUDA la plus élevée prise en charge par votre carte graphique. Installez la bibliothèque CUDNN:

Python vs JavaScript: communauté, bibliothèques et ressources Python vs JavaScript: communauté, bibliothèques et ressources Apr 15, 2025 am 12:16 AM

Python et JavaScript ont leurs propres avantages et inconvénients en termes de communauté, de bibliothèques et de ressources. 1) La communauté Python est amicale et adaptée aux débutants, mais les ressources de développement frontal ne sont pas aussi riches que JavaScript. 2) Python est puissant dans les bibliothèques de science des données et d'apprentissage automatique, tandis que JavaScript est meilleur dans les bibliothèques et les cadres de développement frontaux. 3) Les deux ont des ressources d'apprentissage riches, mais Python convient pour commencer par des documents officiels, tandis que JavaScript est meilleur avec MDNWEBDOCS. Le choix doit être basé sur les besoins du projet et les intérêts personnels.

Comment choisir la version Pytorch sous Centos Comment choisir la version Pytorch sous Centos Apr 14, 2025 pm 02:51 PM

Lors de la sélection d'une version Pytorch sous CentOS, les facteurs clés suivants doivent être pris en compte: 1. CUDA Version Compatibilité GPU Prise en charge: si vous avez NVIDIA GPU et que vous souhaitez utiliser l'accélération GPU, vous devez choisir Pytorch qui prend en charge la version CUDA correspondante. Vous pouvez afficher la version CUDA prise en charge en exécutant la commande nvidia-SMI. Version CPU: Si vous n'avez pas de GPU ou que vous ne souhaitez pas utiliser de GPU, vous pouvez choisir une version CPU de Pytorch. 2. Version Python Pytorch

Comment installer nginx dans Centos Comment installer nginx dans Centos Apr 14, 2025 pm 08:06 PM

CENTOS L'installation de Nginx nécessite de suivre les étapes suivantes: Installation de dépendances telles que les outils de développement, le devet PCRE et l'OpenSSL. Téléchargez le package de code source Nginx, dézippez-le et compilez-le et installez-le, et spécifiez le chemin d'installation AS / USR / LOCAL / NGINX. Créez des utilisateurs et des groupes d'utilisateurs de Nginx et définissez les autorisations. Modifiez le fichier de configuration nginx.conf et configurez le port d'écoute et le nom de domaine / adresse IP. Démarrez le service Nginx. Les erreurs communes doivent être prêtées à prêter attention, telles que les problèmes de dépendance, les conflits de port et les erreurs de fichiers de configuration. L'optimisation des performances doit être ajustée en fonction de la situation spécifique, comme l'activation du cache et l'ajustement du nombre de processus de travail.

Comment faire le prétraitement des données avec Pytorch sur CentOS Comment faire le prétraitement des données avec Pytorch sur CentOS Apr 14, 2025 pm 02:15 PM

Traitez efficacement les données Pytorch sur le système CentOS, les étapes suivantes sont requises: Installation de dépendance: Mettez d'abord à jour le système et installez Python3 et PIP: sudoyuMupdate-anduhuminstallpython3-ysudoyuminstallpython3-pip-y, téléchargez et installez Cudatoolkit et Cudnn à partir du site officiel de Nvidia selon votre version de Centos et GPU. Configuration de l'environnement virtuel (recommandé): utilisez conda pour créer et activer un nouvel environnement virtuel, par exemple: condacreate-n

See all articles