Maison > développement back-end > tutoriel php > Comment le modèle Post-Redirect-Get (PRG) de PHP empêche-t-il la duplication de données et les attaques CSRF ?

Comment le modèle Post-Redirect-Get (PRG) de PHP empêche-t-il la duplication de données et les attaques CSRF ?

Patricia Arquette
Libérer: 2024-12-17 04:50:25
original
944 Les gens l'ont consulté

How Does PHP's Post-Redirect-Get (PRG) Pattern Prevent Data Duplication and CSRF Attacks?

Exemple de code PHP Post-Redirect-Get (PRG)

Lors de l'implémentation du modèle PRG en PHP, il est crucial de suivre les étapes correctes pour assurer la protection contre les problèmes de rechargement de page et de bouton de retour. Explorons l'implémentation de base :

Dans votre code :

  1. Le formulaire est soumis à un script de validation (validate.php).
  2. validate.php valide le entrée et soit la stocke dans la base de données, soit génère des messages d'erreur appropriés.
  3. Le HTML généré (page de confirmation ou page d'erreur) est stocké dans un $_SESSION variable.
  4. validate.php redirige ensuite l'utilisateur vers une page submit.php ou invalid_input.php en utilisant header('Location: ').
  5. La page cible affiche la HTML stocké dans la variable $_SESSION.

Cette approche fournit une solution simple et efficace contre les attaques CSRF et empêche les resoumissions involontaires ou duplication de données.

Scénario PRG le plus simple

Pour une implémentation PRG simplifiée, vous pouvez utiliser l'extrait de code suivant :

if ($_POST) {
    // Validate the input
    
    if (/* input is OK */) {
        // Execute code (database updates, etc.)
        
        // Redirect to the same page
        header("Location: {$_SERVER['REQUEST_URI']}", true, 303);
        exit();
    }
}
Copier après la connexion

N'oubliez pas de utilisez REQUEST_URI au lieu de PHP_SELF pour la compatibilité avec les systèmes et frameworks CMS où PHP_SELF peut rediriger vers un script différent (par exemple, index.php).

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!

source:php.cn
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
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal