Maison > développement back-end > Problème PHP > Comment empêcher la validation à distance en PHP

Comment empêcher la validation à distance en PHP

王林
Libérer: 2023-02-24 16:14:02
original
2830 Les gens l'ont consulté

Comment empêcher la validation à distance en PHP

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[&#39;submit&#39;] == "go"){     
    //check token     
    if ($_POST[&#39;token&#39;] == $_SESSION[&#39;token&#39;]){     
        //strip_tags     
        $name = strip_tags($_POST[&#39;name&#39;]);     
        $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[&#39;token&#39;]= $token;     
     
 function cleanHex($input){     
    $clean = preg_replace("![\][xX]([A-Fa-f0-9]{1,3})!", "",$input);     
    return $clean;     
}     
?>     
<form action="<?php echo $_SERVER[&#39;PHP_SELF&#39;];?>" 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>
Copier après la connexion

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[&#39;vcode&#39;] != get_vcode())
{
    exit(&#39;验证码校验失败,无法入库&#39;);
}
Copier après la connexion

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!

Étiquettes associées:
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal