Prévenir CSRF en PHP : authentification et validation des référents
Les attaques CSRF (Cross-Site Request Forgery) peuvent compromettre les applications Web en trompant les utilisateurs. navigateur à soumettre des requêtes malveillantes à leur insu ou sans leur consentement. Pour empêcher CSRF, deux techniques courantes peuvent être utilisées : l'authentification et la validation du référent.
Authentification des paramètres GET et POST
En plus de vérifier les cookies, exiger une authentification pour les deux GET et les paramètres POST aident à protéger contre les attaques CSRF. Cela garantit que toute demande modifiant des données ou effectuant des actions sensibles nécessite que l'utilisateur soit connecté et authentifié.
Vérification de l'en-tête du référent HTTP
L'en-tête du référent HTTP contient l'URL de la page qui renvoie à la page actuelle. En vérifiant l'en-tête du référent, vous pouvez vous assurer que la demande provient d'une source fiable et non d'un site Web tiers malveillant.
Kohana PHP Framework
Dans Dans le framework PHP Kohana, vous pouvez accéder à l'en-tête du référent en utilisant la méthode Request::referrer(). Cependant, cette méthode renvoie uniquement l’URL de la page référente. Pour valider l'en-tête du référent, vous pouvez vérifier que l'URL correspond à une liste blanche de domaines de confiance. Vous pouvez également générer un jeton unique et l'associer à la session utilisateur en cours. Ce jeton doit être POSTé avec la demande et sa validité vérifiée côté serveur.
Validation des paramètres GET et POST
La validation des paramètres GET et POST permet de se protéger contre entrée malveillante et empêche les attaquants d’exploiter les conversions de types ou les vulnérabilités d’injection SQL. La validation peut être effectuée sur :
En mettant en œuvre à la fois l'authentification et la validation du référent, vous pouvez améliorer considérablement la sécurité de votre application Web PHP et empêcher les attaques CSRF.
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!