Maison développement back-end tutoriel php Comment utiliser les formulaires PHP pour empêcher les attaques CSRF

Comment utiliser les formulaires PHP pour empêcher les attaques CSRF

Jun 24, 2023 am 11:53 AM
csrf攻击 php表单 防范技巧

Avec le développement continu de la technologie réseau, les problèmes de sécurité deviennent de plus en plus un problème incontournable dans le développement d'applications réseau. Parmi elles, l'attaque CSRF (cross-site request forgery) est une méthode d'attaque courante. Son objectif principal est d'utiliser l'utilisateur pour lancer une requête illégale en arrière-plan en permettant à l'utilisateur de lancer une requête malveillante dans le navigateur. est connecté au site Web. Cela entraîne des vulnérabilités de sécurité côté serveur. Dans les applications PHP, l'utilisation de la validation de formulaire est un moyen efficace de prévenir les attaques CSRF.

  1. Rejoignez la vérification du jeton CSRF

Les attaques CSRF utilisent principalement l'identité des utilisateurs connectés pour mener des attaques à distance. , Le moyen de protection le plus direct consiste à ajouter des valeurs non conventionnelles aux données de page et aux formulaires, et à limiter l'envoi de chaque demande de formulaire à une seule fois. Ces valeurs sont des jetons CSRF, qui sont utilisés pour vérifier si les informations d'identité lors de la soumission du formulaire sont légales. Lors du traitement de la soumission du formulaire en arrière-plan, le jeton doit être vérifié Ce n'est que lorsqu'il correspond au jeton prédéfini que la demande peut continuer à être traitée.

Un exemple de code est le suivant :

// 生成Token值,通常可以在session中设置

session_start();

$token = md5(uniqid(mt_rand(), true));

$_SESSION['csrf_token'] = $token;

// 应用到表单中

<input type="hidden" name="csrf_token" value="<?=$_SESSION['csrf_token']?>"/>
Copier après la connexion

Pour la soumission du formulaire, la vérification du jeton est requise avant le traitement des données, comme suit :

// 获取表单提交的Token

$submittedToken = $_POST['csrf_token'];

// 验证Token是否合法

if (!isset($_SESSION['csrf_token']) || $submittedToken !== $_SESSION['csrf_token']) {

    die('Token validation failed, request denied');

}
Copier après la connexion

Dans le code ci-dessus, nous utilisons le mécanisme de session de PHP pour générer une valeur de jeton aléatoire non dupliquée et la stocker dans la session. Dans le formulaire, nous devons transmettre la valeur du jeton en tant que champ dans le champ masqué en arrière-plan afin qu'elle puisse être envoyée au serveur lors de la soumission du formulaire. Côté serveur, nous devons vérifier la valeur du jeton demandée. Si le jeton soumis est incohérent avec le jeton prédéfini, la demande doit être rejetée.

  1. Configuration de l'en-tête de la stratégie de référence

La stratégie de référence est un en-tête HTTP utilisé pour contrôler si le navigateur l'inclut lors de l'envoi de requêtes à des tiers Champ de référence des sites. Si nous rejetons directement les demandes de champs de référence illégaux lors du traitement du formulaire, nous pouvons nous défendre efficacement contre les attaques CSRF.

En PHP, nous pouvons utiliser le code suivant pour définir l'en-tête de la politique de référence :

header('Referrer-Policy: no-referrer');
Copier après la connexion

Le code ci-dessus indique au navigateur de ne pas inclure les informations d'en-tête de référence lors de l'envoi d'une requête . De cette façon, même si un attaquant tente de mener une attaque CSRF en falsifiant l’en-tête Referrer, celui-ci sera rejeté par le navigateur et la requête ne sera pas envoyée au serveur.

  1. Ajouter une authentification par « code de vérification » ou « mot de passe » au formulaire

En plus d'ajouter un jeton CSRF au formulaire, nous pouvons également ajouter une vérification Des méthodes d'authentification supplémentaires telles que des codes ou des mots de passe peuvent améliorer la sécurité du formulaire et empêcher les attaques CSRF. Bien que cette méthode soit relativement lourde, elle est très efficace car quelle que soit la manière dont l'attaquant tente de tromper le serveur, il doit passer par des liens d'authentification supplémentaires, ce qui rend l'attaque plus difficile.

  1. Évitez d'utiliser la méthode GET pour soumettre le formulaire

Les attaques CSRF sont principalement lancées via des requêtes GET, nous essayons donc d'éviter d'utiliser le GET sous la forme Soumettre les données. Si la méthode GET doit être utilisée, nous devons ajouter une valeur Token ou une autre méthode d'authentification au formulaire pour améliorer la sécurité du formulaire.

En bref, prévenir les attaques CSRF est un problème auquel il faut prêter attention dans le développement d'applications PHP. En utilisant rationnellement divers mécanismes de sécurité tels que la valeur du jeton, l'en-tête de la politique de référence et le code de vérification, nous pouvons protéger efficacement les applications contre la menace d'attaques CSRF. Dans le même temps, nous devons continuer à prêter attention aux derniers problèmes de sécurité des réseaux et méthodes d’attaque, et mettre à jour et améliorer rapidement nos mesures 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!

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)

Comment utiliser l'authentification à deux facteurs dans les formulaires PHP pour améliorer la sécurité Comment utiliser l'authentification à deux facteurs dans les formulaires PHP pour améliorer la sécurité Jun 24, 2023 am 09:41 AM

De nos jours, à l’ère de la numérisation et des réseaux, la sécurité est devenue l’un des facteurs importants incontournables dans le monde d’Internet. Dans les scénarios commerciaux où les données sont très sensibles, il est particulièrement important d'améliorer la sécurité des sites Web, des applications et des données des utilisateurs. L'utilisation de l'authentification en deux étapes dans les formulaires PHP pour améliorer la sécurité est une solution réalisable. L'authentification à deux facteurs (2FA), également connue sous le nom de double authentification et d'authentification multifacteur, fait référence au processus par lequel l'utilisateur complète le mot de passe habituel du compte.

Conseils de protection des formulaires PHP : Comment éviter les soumissions répétées de formulaires Conseils de protection des formulaires PHP : Comment éviter les soumissions répétées de formulaires Jun 24, 2023 am 11:50 AM

Lors de l'utilisation de formulaires PHP pour la soumission de données, le problème de la soumission répétée de formulaires se produit souvent. Cela peut conduire à des données inexactes ou, pire encore, à des pannes du système. Il est donc très important de comprendre comment éviter les soumissions en double. Dans cet article, je présenterai quelques techniques de protection de formulaire PHP pour vous aider à prévenir efficacement les problèmes répétés de soumission de formulaires. 1. Ajouter un jeton au formulaire L'ajout d'un jeton au formulaire est un moyen courant d'éviter les soumissions répétées. Le principe de cette méthode est d'ajouter un champ caché au formulaire, qui contient

Comment la conception de l'architecture de sécurité du framework Java empêche-t-elle les attaques CSRF ? Comment la conception de l'architecture de sécurité du framework Java empêche-t-elle les attaques CSRF ? Jun 06, 2024 pm 12:21 PM

Le framework Java empêche les attaques CSRF via les méthodes suivantes : Vérifier CSRFToken : le serveur vérifie si le CSRFToken dans la demande correspond au jeton dans la session. SynchronizerTokenPattern (STP) : à l'aide d'un jeton associé à un formulaire ou un lien spécifique, le serveur vérifie que le jeton correspond au jeton envoyé lorsque le formulaire/le lien est soumis ou cliqué. DoubleSubmitCookies : utilise deux cookies pour vérifier que la demande provient d'un utilisateur valide.

Mesures de sécurité pour protéger les applications Ajax contre les attaques CSRF Mesures de sécurité pour protéger les applications Ajax contre les attaques CSRF Jan 30, 2024 am 08:38 AM

Analyse de sécurité Ajax : Comment prévenir les attaques CSRF ? Introduction : Avec le développement d'applications Web et l'application généralisée de la technologie front-end, Ajax est devenu un élément indispensable du travail quotidien des développeurs. Cependant, Ajax comporte également certains risques de sécurité pour les applications, le plus courant étant les attaques CSRF (Cross-SiteRequestForgery). Cet article commencera par les principes des attaques CSRF, analysera ses menaces de sécurité pour les applications Ajax et fournira des éléments de défense C.

Comment utiliser les formulaires PHP pour empêcher les attaques CSRF Comment utiliser les formulaires PHP pour empêcher les attaques CSRF Jun 24, 2023 am 11:53 AM

Avec le développement continu de la technologie réseau, les problèmes de sécurité deviennent de plus en plus un problème incontournable dans le développement d’applications réseau. Parmi elles, l'attaque CSRF (cross-site request forgery) est une méthode d'attaque courante. Son objectif principal est d'utiliser l'utilisateur pour lancer une requête illégale en arrière-plan en permettant à l'utilisateur de lancer une requête malveillante dans le navigateur. est connecté au site Web. Cela entraîne des vulnérabilités de sécurité côté serveur. Dans les applications PHP, l'utilisation de la validation de formulaire est un moyen efficace de prévenir les attaques CSRF. Ajoutez CSRFToken pour vérifier les attaques CSRF

Comment gérer la conception mobile et réactive dans les formulaires PHP Comment gérer la conception mobile et réactive dans les formulaires PHP Aug 10, 2023 am 11:51 AM

Comment gérer la conception mobile et réactive dans les formulaires PHP. Avec la popularité et la fréquence croissantes des appareils mobiles, et avec de plus en plus d'utilisateurs utilisant des appareils mobiles pour accéder aux sites Web, l'adaptation au mobile est devenue un problème important. Lorsqu'il s'agit de formulaires PHP, nous devons réfléchir à la manière d'obtenir une interface adaptée aux mobiles et un design réactif. Cet article explique comment gérer la conception mobile et réactive dans les formulaires PHP et fournit des exemples de code. 1. Formulaires réactifs utilisant HTML5 HTML5 fournit de nouvelles fonctionnalités qui peuvent facilement implémenter des formulaires réactifs.

Filtrage des données PHP : prévenir les attaques XSS et CSRF Filtrage des données PHP : prévenir les attaques XSS et CSRF Jul 29, 2023 pm 03:33 PM

Filtrage des données PHP : prévention des attaques XSS et CSRF Avec le développement d'Internet, la sécurité des réseaux est devenue l'un des centres d'attention des gens. Lors du développement de sites Web, il est très important de filtrer et de vérifier les données soumises par les utilisateurs, en particulier pour prévenir les attaques XSS (cross-site scripting attaques) et CSRF (cross-site request forgery attaques). Cet article explique comment utiliser PHP pour éviter ces deux vulnérabilités de sécurité courantes et fournit un exemple de code pour référence. Prévention des attaques XSS Les attaques XSS font référence à des attaquants malveillants qui injectent des scripts ou des codes malveillants pour les falsifier.

Protection de sécurité PHP : contrôler les attaques CSRF Protection de sécurité PHP : contrôler les attaques CSRF Jun 24, 2023 am 08:22 AM

Avec le développement d’Internet, la fréquence des cyberattaques augmente. Parmi elles, les attaques CSRF (Cross-SiteRequestForgery) sont devenues l'une des principales menaces contre les sites Web ou les applications. Une attaque CSRF fait référence à un attaquant utilisant l'identité connectée d'un utilisateur pour effectuer des opérations illégales en falsifiant des requêtes. PHP est un langage de programmation côté serveur couramment utilisé. Les développeurs doivent prêter attention à la protection de sécurité PHP pour éviter les attaques CSRF. Voici quelques façons de contrôler les attaques CSRF : 1. Utilisez CSRF

See all articles