In der PHP -Entwicklung ist die Bestätigung der Einreichungsquelle für Formulare von wesentlicher Bedeutung, um Fälschungsanfragen zu verhindern. Die folgenden Methoden können effektiv ermitteln, ob die Einreichungsanforderung von der erwarteten Seite stammt und die Sicherheit der Website verbessern.
Der HTTP -Referenzkopf enthält die Quell -URL, auf der der Benutzer auf die aktuelle Seite zugreift. Durch Erkennen dieses Headers können Sie bestätigen, ob die Anfrage aus demselben Domain -Namen stammt:
if (isset($_SERVER['HTTP_REFERER']) && strpos($_SERVER['HTTP_REFERER'], 'yourdomain.com') !== false) {
// Anfrage aus demselben Domainnamen
}
Postdaten enthält Informationen zu Formulareinreichungen. Indem Sie prüfen, ob der Wert eines bestimmten Feldes (z. B. ein verstecktes Feld) den Erwartungen erfüllt, können Sie die Quelle der Anfrage überprüfen:
if (isset($_POST['nonce']) && $_POST['nonce'] === 'expected_nonce') {
// Anfrage aus dem erwarteten Formular
}
Ein CSRF -Token ist eine Zeichenfolge, die in jeder Sitzung zufällig generiert wird. Es kann als verstecktes Feld im Formular eingereicht und mit dem Token in der Sitzung verglichen werden:
// In einer Sitzung speichern CSRF Token
$_SESSION['csrf_token'] = bin2hex(random_bytes(32));
// Fügen Sie versteckte Felder in die Form ein
<input type="hidden" name="csrf_token" value="<?php echo $_SESSION['csrf_token']; ?>">
// Überprüfen Sie eingereichtToken
if (isset($_POST['csrf_token']) && $_POST['csrf_token'] === $_SESSION['csrf_token']) {
// Anfrage aus dem erwarteten Formular
}
Salz ist eine zufällige Zeichenfolge, die zu den festgelegten Daten hinzugefügt wird, und Hashed, um Datenfälle zu verhindern:
// Salz erzeugen
$salt = bin2hex(random_bytes(32));
// Daten Salz hinzufügen
$data = 'some_data' . $salt;
// Hash -Daten
$hash = hash('sha256', $data);
// Überprüfen Sie eingereicht hash
if (isset($_POST['hash']) && $_POST['hash'] === $hash) {
// Anfrage aus dem erwarteten Formular
}
Mit einem oder mehreren der oben genannten Methoden können Entwickler die Quelle der Formulareinreichungen in PHP effektiv bestätigen, wodurch Fälschungsanfragen verhindern und die Sicherheit von Webanwendungen verbessert werden.