Maison >développement back-end >tutoriel php >Comment empêcher la soumission de formulaires à clics multiples en PHP à l'aide de jetons uniques ?
Prévention de l'envoi de formulaires en plusieurs clics en PHP
Dans les applications Web, empêcher l'envoi de plusieurs formulaires peut améliorer l'expérience utilisateur et l'intégrité des données. PHP propose une solution pour résoudre ce problème.
Solution : jeton unique
PHP utilise des jetons uniques, générés à chaque fois qu'un formulaire est affiché. Ce jeton ne peut être utilisé qu'une seule fois. La mise en œuvre d'un système de jetons empêche non seulement l'envoi de plusieurs formulaires, mais protège également contre la falsification de requêtes intersites (CSRF) et les attaques par relecture.
Exemple de mise en œuvre :
<?php session_start(); // Function to create a unique token function getToken() { $token = sha1(mt_rand()); $_SESSION['tokens'][$token] = 1; return $token; } // Function to validate a token function isTokenValid($token) { if (isset($_SESSION['tokens'][$token])) { unset($_SESSION['tokens'][$token]); return true; } return false; } // Check if a form has been submitted $postedToken = filter_input(INPUT_POST, 'token'); if ($postedToken) { if (isTokenValid($postedToken)) { // Process form } else { // Handling for invalid token } } // Generate a token for the displayed form $token = getToken(); ?> <form method="post"> <fieldset> <input type="hidden" name="token" value="<?php echo $token; ?>"> <!-- Add form content --> </fieldset> </form>
Considérations supplémentaires :
En implémentant cette solution basée sur des jetons, les développeurs PHP peuvent empêcher efficacement l'envoi de plusieurs formulaires, garantissant l'intégrité des données et améliorant l'expérience utilisateur.
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!