De manière générale, empêcher l'envoi d'un formulaire en dehors du site n'est rien de plus que l'ajout d'un jeton pour vérification à chaque fois que le formulaire est ouvert ou que des données sont soumises. Ce n’est en fait pas différent de la méthode du code de vérification. Examinons quelques exemples d’empêchement de la soumission à distance de formulaires en dehors du site.
Exemple 1 : Chaque fois que nous ouvrons la page de soumission, nous générons un jeton, puis l'enregistrons dans la session. Lorsque le formulaire est soumis, nous déterminons si le formulaire est en cours. la valeur du jeton est cohérente avec la session. Cohérente, si oui, c'est une soumission normale, sinon, c'est une soumission invalide.
Le code spécifique est le suivant :
<?php session_start(); if ($_POST['submit'] == "go"){ //check token if ($_POST['token'] == $_SESSION['token']){ //strip_tags $name = strip_tags($_POST['name']); $name = substr($name,0,40); //clean out any potential hexadecimal characters $name = cleanHex($name); //continue processing.... }else{ //stop all processing! remote form posting attempt! } } $token = md5(uniqid(rand(), true)); $_SESSION['token']= $token; function cleanHex($input){ $clean = preg_replace("![\][xX]([A-Fa-f0-9]{1,3})!", "",$input); return $clean; } ?> <form action="<?php echo $_SERVER['PHP_SELF'];?>" method="post"> <p><label for="name">Name</label> <input type="text" name="name" id="name" size="20" maxlength="40"/></p> <input type="hidden" name="token" value="<?php echo $token;?>"/> <p><input type="submit" name="submit" value="go"/></p> </form>
Il existe également une méthode plus évidente, qui consiste à utiliser le code de vérification. Cette méthode de code de vérification est la même que les autres méthodes. Jetez un œil ci-dessous Exemple simple
Exemple 2 : Ajouter un code de vérification
Ajoutez un code de vérification lors de la soumission du formulaire, ce qui peut efficacement empêcher la machine de remplissage d'eau de soumettre des données. Cependant, à mesure que les programmes de reconnaissance graphique et d'image deviennent plus puissants, la reconnaissance des codes de vérification continue de devenir plus difficile. Certains codes de vérification intègrent même une reconnaissance sonore. Certains petits sites peuvent utiliser cette méthode.
if($_POST['vcode'] != get_vcode()) { exit('验证码校验失败,无法入库'); }
Le contenu ci-dessus est à titre de référence uniquement !
Tutoriel recommandé : Tutoriel vidéo 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!