Aktueller Standort: Startseite> Neueste Artikel> Verhindern Sie Man-in-the-Middle

Verhindern Sie Man-in-the-Middle

M66 2025-06-23

In den tatsächlichen Webanwendungen kann die Datenübertragung (z. B. HTTP -Anforderungen und Antworten) böswillig abgefangen und manipuliert werden. Um die Integrität der Daten zu überprüfen und zu verhindern, dass die Daten in der Mitte geändert werden, können wir den Hash -Algorithmus verwenden, um die Daten zu überprüfen. Durch Anhängen des Hash -Werts der Daten an die Anforderung oder Antwort kann der Empfänger denselben Hash -Algorithmus verwenden, um den Hash -Wert der empfangenen Daten neu zu berechnen und ihn mit dem begleitenden Hash -Wert zu vergleichen, um festzustellen, ob die Daten während des Getriebes geführt wurden.

Schritt 1: Generieren Sie den Hash -Wert der Daten

Zunächst müssen wir einen Hash -Algorithmus (wie SHA256) verwenden, um den Hash -Wert der Anfrage oder Antwort zu generieren. In PHP können Sie die Hash () -Funktion verwenden, um Hash -Werte zu generieren. Hier ist der Beispielcode zum Generieren von Hash -Werten:

 $data = "Sensibler Dateninhalt";  // Ersetzen Sie dies durch die Daten, die Sie übertragen möchten
$hash_value = hash('sha256', $data);  // Daten generierenSHA256Hash -Wert

In diesem Beispiel verwenden wir den SHA256 -Hashing -Algorithmus. Sie können verschiedene Hashing -Algorithmen aus Ihren Bedürfnissen auswählen, z. B. MD5 oder SHA512.

Schritt 2: Fügen Sie den Hash -Wert an die HTTP -Anfrage hinzu

Um die Datenintegrität zu gewährleisten, können wir den Hash -Wert an den Header der HTTP -Anfrage anhängen. Die Curl -Bibliothek kann verwendet werden, um HTTP -Anforderungen mit Hash -Werten zu senden, um sicherzustellen, dass der Server die Integrität der Daten beim Empfangen der Anforderung überprüfen kann.

 $url = "https://m66.net/api/verify";  // AngefordertURL,Ersetzen durchm66.netDomain -Name
$data = "Sensibler Dateninhalt";  // Daten zu senden
$hash_value = hash('sha256', $data);  // Daten generierenHash -Wert

$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, [
    'X-Data-Hash: ' . $hash_value  // 将Hash -Wert添加到请求头中
]);
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$response = curl_exec($ch);
curl_close($ch);

Im obigen Code senden wir den Hash-Wert an den Server als benutzerdefiniertes HTTP-Header-Feld X-Data-Hash . Auf diese Weise kann der Server die Hash -Überprüfung durchführen, wenn Daten empfangen werden.

Schritt 3: serverseitige Überprüfung des Hash-Wertes

Nachdem der Server die Anforderung erhalten hat, muss überprüfen, ob der Hash -Wert der Daten mit dem an die Anforderung angehängten Hash -Wert übereinstimmt. Wir können den Hash -Wert der empfangenen Daten auf der Serverseite neu berechnen und mit dem Hash -Wert im Anforderungsheader vergleichen.

 $received_hash = $_SERVER['HTTP_X_DATA_HASH'];  // 获取请求头中的Hash -Wert
$received_data = file_get_contents('php://input');  // Holen Sie sich die Daten in der Anfrage

// 重新计算接收到数据的Hash -Wert
$calculated_hash = hash('sha256', $received_data);

// 比较计算出的Hash -Wert与请求中的Hash -Wert
if ($received_hash === $calculated_hash) {
    echo "Daten sind abgeschlossen,Nicht manipuliert";
} else {
    echo "Die Daten wurden möglicherweise manipuliert,Überprüfung fehlgeschlagen";
}

Auf der Serverseite erhalten wir zunächst den Hash -Wert im HTTP -Anforderungsheader und berechnen den Hash -Wert der Daten in der Anforderungsbehörde neu. Wenn die beiden konsistent sind, wurden die Daten nicht manipuliert. Wenn inkonsistent, bedeutet dies, dass die Daten während der Übertragung böswillig geändert werden können.

Schritt 4: Verarbeitung der Hash -Überprüfung der Antwort

Zusätzlich zur Anforderung von Hash -Überprüfung von Daten können wir der Serverantwort Hash -Werte zur Überprüfung hinzufügen, um zu verhindern, dass die Antwortdaten während der Übertragung manipuliert werden. In ähnlicher Weise kann der Server einen Hash der Antwortdaten generieren und dem Antwortheader hinzufügen.

 $response_data = "Dies ist, was der Server reagiert";  // Serverantwortdaten
$response_hash = hash('sha256', $response_data);  // 计算响应数据的Hash -Wert

header('X-Response-Hash: ' . $response_hash);  // 将Hash -Wert添加到响应头部
echo $response_data;

Der Client kann die Antwortdaten und Hash -Werte im Antwortheader und die Hash -Überprüfung der Antwortdaten empfangen, um die Integrität zu gewährleisten.

Zusammenfassen

Durch die Echtzeit-Hash-Verifizierungstechnologie können wir effektiv verhindern, dass Mann-in-the-Middle-Angriffe. Die Implementierung dieser Funktionalität in PHP ist sehr einfach. Verwenden Sie einfach den Hash -Algorithmus, um den Hash der Daten zu generieren und ihn zur Überprüfung über den HTTP -Anforderungsheader oder Antwortheader an den Empfänger weiterzugeben. Obwohl diese Methode die verschlüsselte Kommunikation nicht ersetzen kann, kann sie als effektive Ergänzung zur Verbesserung der Sicherheit während der Datenübertragung dienen.