Maison >développement back-end >tutoriel php >Comment puis-je prévenir les attaques CSRF en PHP, en particulier en utilisant le framework Kohana ?

Comment puis-je prévenir les attaques CSRF en PHP, en particulier en utilisant le framework Kohana ?

Linda Hamilton
Linda Hamiltonoriginal
2024-11-29 04:47:27121parcourir

How Can I Prevent CSRF Attacks in PHP, Specifically Using the Kohana Framework?

Prévenir la falsification de requêtes intersites (CSRF) en PHP

Question : Pouvez-vous expliquer comment appliquer les techniques mentionnées dans l'article Wikipédia pour empêcher CSRF en PHP, en particulier dans le Kohana framework ?

Réponse :

Pour empêcher CSRF en PHP, vous pouvez mettre en œuvre les mesures suivantes :

  • Valider un -time token dans les paramètres GET et POST. Ce jeton doit être unique pour chaque requête et doit expirer après une courte durée. Un exemple simple de ceci en PHP est fourni ci-dessous :
// On the page requesting to delete a record
session_start();
$token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : "";
if (!$token) {
    // Generate and persist a new token
    $token = md5(uniqid());
    $_SESSION['delete_customer_token']= $token;
}
session_write_close();
// When actually performing the deletion
session_start();
// Validate the token
$token = isset($_SESSION['delete_customer_token']) ? $_SESSION['delete_customer_token'] : "";
if ($token && $_POST['token'] === $token) {
    // Delete the record
    ...
    // Remove the token after successful deletion
    unset($_SESSION['delete_customer_token']);
} else {
    // Log a potential CSRF attack
}
session_write_close();
  • Vérifiez l'en-tête HTTP Referer. L'en-tête Referer contient l'URL de la page. qui faisait référence à la page actuelle. Si l'en-tête Referer ne correspond pas à la valeur attendue, cela peut indiquer une attaque CSRF.

Dans Kohana, vous pouvez récupérer l'URL du référent à l'aide de la méthode Request::referrer(). Pour vous assurer que l'URL de référence est légitime, vous pouvez la comparer à une liste de domaines de confiance autorisés à faire référence à votre site.

En mettant en œuvre ces mesures, vous pouvez contribuer à protéger vos applications PHP contre 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!

Déclaration:
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