Token ist ein Token. Sein größtes Merkmal ist Zufälligkeit und Unvorhersehbarkeit.
Token wird im Allgemeinen an zwei Stellen verwendet – um wiederholte Formularübermittlungen und Anti-CSRF-Angriffe (Cross-Site Request Forgery) zu verhindern.
Beides wird grundsätzlich durch session token
umgesetzt. Wenn der Client eine Seite anfordert, generiert der Server ein Zufallszahlen-Token, platziert das Token in der Sitzung und sendet es dann an den Client (normalerweise durch Erstellen eines versteckten Formulars). Wenn der Client das nächste Mal eine Anfrage sendet, wird das Token zusammen mit dem Formular an den Server übermittelt.
Bei Anwendung zur „Verhinderung wiederholter Formularübermittlung“ wird der Token-Wert in der Sitzung aktualisiert, nachdem die erste Überprüfung auf der Serverseite gleich ist. Wenn der Benutzer wiederholt übermittelt, schlägt die zweite Überprüfung fehl weil Das Token im vom Benutzer übermittelten Formular hat sich nicht geändert, aber das Token in der serverseitigen Sitzung hat sich geändert.
Online-Video-Tutorials teilen: PHP-Video-Tutorial
Token zum PHP-Formular hinzufügen, um wiederholte Übermittlungen zu verhindern
Das Prinzip besteht darin, eine zufällige Zeichenfolge zu generieren, die nach dem Absenden des Formulars überprüft wird. Dies kann verhindern, dass andere das Formular selbst schreiben, die Übermittlung wiederholen oder auf die Übermittlung klicken.
Einfache Implementierung (nur als Referenz):
<?php /* * PHP简单利用token防止表单重复提交 * 此处理方法纯粹是为了给初学者参考 */ session_start(); function set_token() { $_SESSION['token'] = md5(microtime(true)); } function valid_token() { $return = $_REQUEST['token'] === $_SESSION['token'] ? true : false; set_token(); return $return; } //如果token为空则生成一个token if(!isset($_SESSION['token']) || $_SESSION['token']=='') { set_token(); } if(isset($_POST['test'])){ if(!valid_token()){ echo "token error"; }else{ echo '成功提交,Value:'.$_POST['test']; } } ?> <form method="post" action=""> <input type="hidden" name="token" value="<?php echo $_SESSION['token']?>"> <input type="text" name="test" value="Default"> <input type="submit" value="提交" /> </form>
Empfohlene Tutorials zu verwandten Artikeln: PHP-Tutorial
Das obige ist der detaillierte Inhalt vonSo verhindern Sie die wiederholte Übermittlung von Formularen in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!