Heim > Artikel > Backend-Entwicklung > So verhindern Sie Remote-Commit in PHP
Im Allgemeinen ist das Verhindern der Formularübermittlung außerhalb der Website nichts anderes als das Hinzufügen eines Tokens zur Überprüfung jedes Mal, wenn das Formular geöffnet oder Daten übermittelt werden. Dies unterscheidet sich eigentlich nicht von der Bestätigungscode-Methode. Schauen wir uns einige Beispiele an, um die Remote-Übermittlung von Formularen außerhalb der Website zu verhindern.
Beispiel 1: Jedes Mal, wenn wir die Übermittlungsseite öffnen, generieren wir ein Token und speichern es dann in der Sitzung. Wenn das Formular übermittelt wird, ermitteln wir, ob das aktuelle Der Tokenwert stimmt mit der Sitzung überein. Konsistent, wenn ja, handelt es sich um eine normale Übermittlung, andernfalls handelt es sich um eine ungültige Übermittlung.
Der spezifische Code lautet wie folgt:
<?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>
Es gibt auch eine offensichtlichere Methode, nämlich die Verwendung des Bestätigungscodes. Diese Methode des Bestätigungscodes ist die gleiche wie andere Methoden. Schauen Sie sich unten an. Einfaches Beispiel
Beispiel 2: Bestätigungscode hinzufügen
Fügen Sie beim Absenden des Formulars einen Bestätigungscode hinzu, der effektiv verhindern kann, dass die Wasserfüllmaschine Daten übermittelt. Da Grafik- und Bilderkennungsprogramme jedoch immer leistungsfähiger werden, wird die Erkennung von Verifizierungscodes immer schwieriger. Einige kleine Websites können diese Methode verwenden.
if($_POST['vcode'] != get_vcode()) { exit('验证码校验失败,无法入库'); }
Der obige Inhalt dient nur als Referenz!
Empfohlenes Tutorial: PHP-Video-Tutorial
Das obige ist der detaillierte Inhalt vonSo verhindern Sie Remote-Commit in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!