


Comment empêcher les attaques de contrefa?on de demande croisée (CSRF) dans YII?
Jul 15, 2025 am 12:41 AMYii La clé pour prévenir les attaques du CSRF est d'utiliser correctement le mécanisme intégré. Tout d'abord, YII permet la protection CSRF par défaut et génère automatiquement des jetons. Le jeton sera automatiquement ajouté lors de l'utilisation de ActiveForm ou HTML :: BeginForm; Deuxièmement, lorsque vous écrivez des formulaires manuellement ou en utilisant AJAX, vous devez obtenir le jeton via yii :: $ app-> request-> csrftoken, et il est recommandé de le transmettre à JS via des balises Meta; Troisièmement, pour l'interface API, vous pouvez choisir de désactiver le CSRF et de renforcer d'autres authentifications telles que JWT ou de passer des jetons via l'en-tête; Enfin, les opérations sensibles doivent être évitées dans les demandes de GET et n'utilisent que Post / Put / Supprimer pour effectuer des modifications d'état.
La prévention des attaques de contrefa?on de demande de site croisé (CSRF) n'est pas réellement compliquée en YII, mais elle est très critique. Le cadre YII lui-même a le mécanisme de protection CSRF intégré, qui est activé par défaut. Tant que vous comprenez comment cela fonctionne et effectuez des configurations raisonnables en fonction des besoins réels, vous pouvez effectivement empêcher de telles attaques.
Allumez et utilisez correctement la protection du CSRF de YII
YII génère un jeton CSRF unique pour chaque session par défaut et le valide dans chaque demande de poste. Si vous utilisez des méthodes d'assistance aux formulaires fournies par YII telles que ActiveForm ou HTML :: Beginform, le jeton sera automatiquement ajouté au formulaire sans traitement manuel.
Mais si vous écrivez le formulaire vous-même ou soumettez des données avec AJAX, vous devez insérer manuellement le jeton CSRF. Par exemple:
- Obtenez un jeton en vue:
Yii::$app->request->csrfToken
- Lorsque vous l'utilisez dans JavaScript, il est recommandé de mettre le jeton dans la balise Meta, puis de le faire via JS:
<meta name = "csrf-token" content = "<? = yii :: $ app-> request-> csrftoken?>">
Cela peut éviter les risques XSS et faciliter les appels frontaux.
Portez une attention particulière aux paramètres CSRF pour les interfaces API
Pour les applications séparées frontales et back-end ou les interfaces API reposantes, l'authentification basée sur les cookies / session n'est généralement pas recommandée. à l'heure actuelle, la protection du CSRF peut devoir être désactivée ou gérée d'une autre manière.
Vous pouvez désactiver la vérification CSRF dans la configuration du contr?leur ou du module:
fonction publique init () { $ this-> iactivecsrfvalidation = false; parent :: init (); }
Cependant, il convient de noter que d'autres mesures de sécurité doivent être renforcées lors de la fermeture du CSRF, comme l'utilisation de l'authentification JWT, etc. pour assurer la légitimité de la source de demande.
De plus, si vous souhaitez toujours conserver la vérification du CSRF, vous pouvez passer le jeton à travers l'en-tête au lieu de le mettre sous la forme. Le frontal apporte X-CSRF-Token
dans l'en-tête de demande, et le back-end peut le reconna?tre.
Notez que les demandes de GET ne doivent pas effectuer d'opérations sensibles
De nombreuses attaques CSRF profitent des cookies automatiques du navigateur de l'utilisateur et les demandes sont les plus susceptibles d'être déclenchées. Par conséquent, ne laissez jamais obtenir les demandes d'effectuer des opérations sensibles , telles que la suppression des données, la modification des informations de l'utilisateur, etc.
Même si vous activez la protection CSRF, vous devez suivre ce principe. Parce que par défaut, YII n'effectue pas de vérification CSRF sur les demandes GET, car il suppose que GOR est "en lecture seule".
Donc, la bonne fa?on est:
- Utilisez le post / put / supprimer pour effectuer des modifications d'état
- Si GET est requis, n'impliquez pas les modifications d'identité de l'utilisateur ou les opérations de données sensibles
Résumons
Fondamentalement, c'est tout. Le mécanisme de protection du CSRF de YII est déjà très complet. Tant que vous faites attention à quelques points clés pendant le processus de développement - en utilisant correctement les jetons, en configurant raisonnablement l'interface de l'API et en évitant les opérations dangereuses dans GET, vous pouvez être bien protégé contre les attaques CSRF. Ceux-ci semblent simples, mais si vous ne faites pas attention, il est facile d'ignorer un certain lien, ce qui entra?ne des vulnérabilités de sécurité.
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!

Outils d'IA chauds

Undress AI Tool
Images de déshabillage gratuites

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

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

Clothoff.io
Dissolvant de vêtements AI

Video Face Swap
échangez les visages dans n'importe quelle vidéo sans effort grace à notre outil d'échange de visage AI entièrement gratuit?!

Article chaud

Outils chauds

Bloc-notes++7.3.1
éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

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

Protection contre les scripts intersites (XSS) et la falsification de requêtes intersites (CSRF) dans Laravel Avec le développement d'Internet, les problèmes de sécurité des réseaux sont devenus de plus en plus graves. Parmi eux, Cross-SiteScripting (XSS) et Cross-SiteRequestForgery (CSRF) sont l'une des méthodes d'attaque les plus courantes. Laravel, en tant que framework de développement PHP populaire, offre aux utilisateurs une variété de mécanismes de sécurité

Guide de sécurité du framework PHP?: Comment prévenir les attaques CSRF?? Une attaque CSRF (Cross-Site Request Forgery) est un type d'attaque réseau dans lequel un attaquant incite un utilisateur à effectuer des actions involontaires au sein de l'application Web de la victime. Comment fonctionne le CSRF ? Les attaques CSRF exploitent le fait que la plupart des applications Web permettent d'envoyer des requêtes entre différentes pages au sein du même nom de domaine. L'attaquant crée une page malveillante qui envoie des requêtes à l'application de la victime, déclenchant des actions non autorisées. Comment prévenir les attaques CSRF ? 1. Utilisez des jetons anti-CSRF?: attribuez à chaque utilisateur un jeton unique, stockez-le dans la session ou dans le cookie. Incluez un champ masqué dans votre candidature pour soumettre ce jeton

Analyse comparative de la falsification de requêtes inter-domaines et inter-sites PHPSession Avec le développement d'Internet, la sécurité des applications Web est devenue particulièrement importante. PHPSession est un mécanisme d'authentification et de suivi de session couramment utilisé lors du développement d'applications Web, tandis que les requêtes d'origine croisée et la falsification de requêtes inter-sites (CSRF) sont deux menaces de sécurité majeures. Afin de protéger la sécurité des données utilisateur et des applications, les développeurs doivent comprendre la différence entre Session cross-domain et CSRF et adopter

Avec le développement continu de la technologie du cloud computing, la sauvegarde des données est devenue quelque chose que chaque entreprise doit faire. Dans ce contexte, il est particulièrement important de développer un système de sauvegarde cloud hautement disponible. Le framework PHP Yii est un framework puissant qui peut aider les développeurs à créer rapidement des applications Web hautes performances. Ce qui suit explique comment utiliser le framework Yii pour développer un système de sauvegarde cloud hautement disponible. Conception du modèle de base de données Dans le framework Yii, le modèle de base de données est une partie très importante. Parce que le système de sauvegarde des données nécessite beaucoup de tables et de relations

Les principales différences entre Laravel et YII sont les concepts de conception, les caractéristiques fonctionnelles et les scénarios d'utilisation. 1.Laravel se concentre sur la simplicité et le plaisir du développement, et offre des fonctions riches telles que Elognentorm et des outils artisanaux, adaptés au développement rapide et aux débutants. 2.YII met l'accent sur les performances et l'efficacité, convient aux applications à haute charge et fournit des systèmes activecord et de cache efficaces, mais a une courbe d'apprentissage abrupte.

Les étapes de conteneris et de déploiement des applications YII à l'aide de Docker incluent: 1. Créez un DockerFile et définissez le processus de création d'images; 2. Utilisez DockerCose pour lancer les applications YII et la base de données MySQL; 3. Optimiser la taille et les performances de l'image. Cela implique non seulement des opérations techniques spécifiques, mais aussi de comprendre les principes de travail et les meilleures pratiques de Dockerfile pour assurer un déploiement efficace et fiable.

En PHP, vous pouvez prévenir efficacement les attaques du CSRF en utilisant des jetons imprévisibles. Les méthodes spécifiques comprennent: 1. Générer et intégrer les jetons CSRF dans la forme; 2. Vérifiez la validité du jeton lors du traitement de la demande.

Si vous demandez ? Qu'est-ce que Yii ? ?, consultez mon tutoriel précédent : Introduction au framework Yii, qui passe en revue les avantages de Yii et décrit les nouveautés de Yii 2.0, publié en octobre 2014. Hmm> Dans cette série Programmation avec Yii2, je guiderai les lecteurs dans l'utilisation du framework Yii2PHP. Dans le didacticiel d'aujourd'hui, je vais partager avec vous comment tirer parti des fonctionnalités de la console Yii pour exécuter des taches cron. Dans le passé, j'ai utilisé wget - une URL accessible sur le Web - dans une tache cron pour exécuter mes taches en arrière-plan. Cela soulève des problèmes de sécurité et entra?ne des problèmes de performances. Alors que je discutais de certaines fa?ons d'atténuer les risques dans notre série Sécurité pour les startups, j'avais espéré passer aux commandes pilotées par la console.
