


Yii Framework Official Guide Series 51 - Thème spécial : Mesures de sécurité (Sécurité)
1. Prévention des attaques par scripts intersites
Attaque par scripts intersites (appelée XSS), c'est-à-dire , les applications Web collectent des informations auprès des utilisateurs. Données utilisateur. Les attaquants injectent souvent du JavaScript, VBScript, ActiveX, HTML ou Flash dans des applications Web vulnérables pour confondre les visiteurs et collecter des informations sur les visiteurs. Par exemple, un système de forum mal conçu peut afficher les entrées des utilisateurs sans les vérifier. Un attaquant peut injecter un morceau de code JavaScript malveillant dans le contenu de la publication. De cette manière, lorsque d'autres visiteurs liront cet article, ces codes JavaScript pourront être exécutés sur l'ordinateur du visiteur.
L'une des mesures les plus importantes pour prévenir les attaques XSS est : Inspection du contenu avant d'afficher le contenu saisi par l'utilisateur. Par exemple, vous pouvez échapper le code HTML dans le contenu. Mais dans certains cas, cette méthode n'est pas recommandée, car elle désactive toutes les balises HTML.
Yii intègre HTMLPurifier et fournit aux développeurs un composant très utile CHtmlPurifier, qui encapsule la classe HTMLPurifier. Il peut supprimer tout code malveillant du contenu audité grâce à des fonctions efficaces d'examen, de sécurité et de liste blanche, et garantir que le contenu filtré après filtrage répond aux normes.
Le composant CHtmlPurifier peut être utilisé comme widget ou filtre. Lorsqu'il est utilisé comme widget, CHtmlPurifier peut filtrer en toute sécurité le contenu affiché dans la vue. Ce qui suit est un exemple de code :
<?php $this->beginWidget('CHtmlPurifier'); ?> //...这里显示用户输入的内容... <?php $this->endWidget(); ?>
2. Prévention du cross-site Attaques de contrefaçon de requête
Attaque de falsification de requête intersite (CSRF en abrégé), c'est-à-dire que lorsque le navigateur de l'utilisateur visite un site Web malveillant, l'attaquant amène le navigateur de l'utilisateur à lancer une requête spécifiée par l'attaquant vers un site Web de confiance. . Par exemple, un site Web malveillant possède une image, et l'adresse src
de cette image pointe vers un site Web de banque : http://www.php.cn/
. Si l'utilisateur visite cette page Web malveillante après s'être connecté au site Web de la banque, le navigateur de l'utilisateur enverra une instruction au site Web de la banque. Le contenu de cette instruction peut être « transférer 10 000 yuans sur le compte de l'attaquant ». Les attaques intersites profitent d'un site Web spécifique auquel l'utilisateur fait confiance, tandis que les attaques CSRF, au contraire, profitent de l'identité spécifique de l'utilisateur sur un site Web.
Pour éviter les attaques CSRF, vous devez vous rappeler une chose : GET
Les requêtes sont uniquement autorisées à récupérer des données et ne peuvent modifier aucune donnée sur le serveur. La requête POST
doit contenir des valeurs aléatoires qui peuvent être reconnues par le serveur pour garantir que la source des données du formulaire et la destination des résultats en cours d'exécution sont les mêmes.
Yii implémente un mécanisme de prévention CSRF pour aider à prévenir les attaques basées sur POST
. Le cœur de ce mécanisme est de définir une donnée aléatoire dans le cookie, puis de la comparer avec la valeur correspondante dans les POST
données soumises par le formulaire.
Par défaut, la prévention CSRF est désactivée. Si vous souhaitez l'activer, vous pouvez éditer la section CHttpRequest du composant dans la configuration de l'application.
Exemple de code :
return array( 'components'=>array( 'request'=>array( 'enableCsrfValidation'=>true, ), ), );
Pour afficher un formulaire, Veuillez utiliser CHtml::form au lieu d'écrire vous-même du code HTML. Parce que CHtml::form peut automatiquement intégrer un élément masqué dans le formulaire. Cet élément masqué stocke les données aléatoires nécessaires à la vérification. Ces données peuvent être envoyées au serveur pour vérification lorsque le formulaire est soumis.
3. Prévention des attaques de cookies
Il est très important de protéger les cookies contre les attaques. Parce que l'ID de session est généralement stocké dans un cookie. Si l'attaquant vole un identifiant de session valide, il peut utiliser les informations de session correspondant à cet identifiant de session.
Voici quelques précautions :
Vous pouvez utiliser SSL pour créer un canal sécurisé et envoyer le cookie d'authentification uniquement via une connexion HTTPS. De cette manière, l’attaquant ne peut pas décrypter le cookie envoyé.
Définissez le délai d'expiration des cookies, faites de même pour tous les cookies et jetons de session. Cela réduit les risques d'être attaqué.
Empêche les attaques de code intersites, car cela peut déclencher du code arbitraire dans le navigateur de l'utilisateur, ce qui peut divulguer les cookies de l'utilisateur.
Vérifiez le contenu du cookie lorsque le cookie change.
Yii implémente un mécanisme de vérification des cookies pour empêcher la modification des cookies. Après activation, la vérification HMAC des valeurs des cookies peut être effectuée.
La vérification des cookies est désactivée par défaut. Si vous souhaitez l'activer, vous pouvez éditer la section CHttpRequest du composant dans la configuration de l'application.
Exemple de code :
return array( 'components'=>array( 'request'=>array( 'enableCookieValidation'=>true, ), ), );
Assurez-vous d'utiliser Yii Données de cookies authentifiés. Utilisez le composant cookies intégré de Yii pour les opérations sur les cookies, n'utilisez pas $_COOKIES
.
// 检索一个名为$name的cookie值 $cookie=Yii::app()->request->cookies[$name]; $value=$cookie->value; ...... // 设置一个cookie $cookie=new CHttpCookie($name,$value); Yii::app()->request->cookies[$name]=$cookie;
Ce qui précède est le contenu de la série 51 du guide officiel du Yii Framework - Sujet spécial : mesures de sécurité (sécurité). Pour plus de contenu connexe, veuillez prêter attention au . Site Web chinois PHP (www.php.cn) !

Outils d'IA chauds

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.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

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)

Yii est un framework MVC hautes performances basé sur PHP. Il fournit un ensemble très riche d'outils et de fonctions pour prendre en charge le développement rapide et efficace d'applications Web. Parmi eux, la fonction RESTfulAPI du framework Yii a attiré de plus en plus l'attention et l'amour des développeurs, car l'utilisation du framework Yii peut facilement créer des interfaces RESTful hautes performances et facilement évolutives, offrant un support solide pour le développement d'applications Web. Introduction à RESTfulAPI RESTfulAPI est un

Avec le développement rapide des applications Web, le développement Web moderne est devenu une compétence importante. De nombreux frameworks et outils sont disponibles pour développer des applications web efficaces, parmi lesquels le framework Yii est très populaire. Yii est un framework PHP hautes performances basé sur des composants qui utilise les derniers modèles de conception et technologies, fournit des outils et des composants puissants et est idéal pour créer des applications Web complexes. Dans cet article, nous verrons comment utiliser le framework Yii pour créer des applications Web. Installez d'abord le framework Yii,

Middleware du framework Yii : fournir une prise en charge de plusieurs stockages de données pour les applications Introduction Le middleware (middleware) est un concept important dans le framework Yii, qui fournit une prise en charge de plusieurs stockages de données pour les applications. Le middleware agit comme un filtre, insérant du code personnalisé entre les requêtes et les réponses d'une application. Grâce au middleware, nous pouvons traiter, vérifier, filtrer les demandes, puis transmettre les résultats traités au middleware suivant ou au gestionnaire final. Le middleware du framework Yii est très simple à utiliser

Étapes pour mettre en œuvre la mise en cache et la segmentation de pages Web à l'aide du framework Yii Introduction : Au cours du processus de développement Web, afin d'améliorer les performances et l'expérience utilisateur du site Web, il est souvent nécessaire de mettre en cache et de fragmenter la page. Le framework Yii fournit de puissantes fonctions de mise en cache et de mise en page, qui peuvent aider les développeurs à mettre en œuvre rapidement la mise en cache et la segmentation de pages Web. Cet article explique comment utiliser le framework Yii pour implémenter la mise en cache et la segmentation de pages Web. 1. Activez la mise en cache des pages Web Dans le framework Yii, la mise en cache des pages Web peut être activée via le fichier de configuration. Ouvrez le fichier de configuration principal co

Ces dernières années, avec le développement rapide de l'industrie du jeu, de plus en plus de joueurs ont commencé à rechercher des stratégies de jeu pour les aider à réussir. Par conséquent, la création d’un site Web de guides de jeu peut permettre aux joueurs d’obtenir plus facilement des guides de jeu, et en même temps, cela peut également offrir aux joueurs une meilleure expérience de jeu. Lors de la création d'un tel site Web, nous pouvons utiliser le framework Yii pour le développement. Le framework Yii est un framework de développement d'applications web basé sur le langage de programmation PHP. Il présente les caractéristiques d'une efficacité élevée, d'une sécurité et d'une forte évolutivité, et peut nous aider à créer un guide de jeu plus rapidement et plus efficacement.

Middleware du framework Yii : ajouter des fonctionnalités de journalisation et de débogage aux applications [Introduction] Lors du développement d'applications Web, nous devons généralement ajouter des fonctionnalités supplémentaires pour améliorer les performances et la stabilité de l'application. Le framework Yii fournit le concept de middleware qui nous permet d'effectuer certaines tâches supplémentaires avant et après que l'application traite la requête. Cet article explique comment utiliser la fonction middleware du framework Yii pour implémenter les fonctions de journalisation et de débogage. [Qu'est-ce qu'un middleware] Le middleware fait référence au traitement des demandes et des réponses avant et après que l'application traite la demande.

Dans le framework Yii, les contrôleurs jouent un rôle important dans le traitement des requêtes. En plus de gérer les requêtes de pages régulières, les contrôleurs peuvent également être utilisés pour gérer les requêtes Ajax. Cet article expliquera comment gérer les requêtes Ajax dans le framework Yii et fournira des exemples de code. Dans le framework Yii, le traitement des requêtes Ajax peut s'effectuer à travers les étapes suivantes : La première étape consiste à créer une classe contrôleur (Controller). Vous pouvez hériter de la classe de contrôleur de base yiiwebCo fournie par le framework Yii

Cryptage et déchiffrement des données sensibles à l'aide du middleware du framework Yii Introduction : Dans les applications Internet modernes, la confidentialité et la sécurité des données sont des problèmes très importants. Pour garantir que les données sensibles des utilisateurs ne soient pas accessibles à des visiteurs non autorisés, nous devons chiffrer ces données. Le framework Yii nous offre un moyen simple et efficace de mettre en œuvre les fonctions de cryptage et de décryptage des données sensibles. Dans cet article, nous expliquerons comment y parvenir en utilisant le middleware du framework Yii. Introduction au framework Yii Le framework Yii est un framework PHP hautes performances.
