Logo
Logo

Wie man eine E-Mail in php sicher validiert

In diesem Artikel zeigen wir Ihnen, wie Sie eine E-Mail in PHP auf sichere Weise validieren können, indem Sie verhindern, dass sie den Token unseres E-Mail-Prüfdienstes erhalten. In den Beispielen verwenden wir den Dienst zur Validierung von E-Mails von verificaremails.com, obwohl das gleiche System für jeden E-Mail-Validierungsdienst funktioniert. Es gibt derzeit eine Vielzahl von Diensten, mit denen Sie E-Mails validieren können. Skriptbasierte Lösungen sind zwar ein erster Schritt, ermöglichen Ihnen aber nur die Validierung von E-Mails anhand von Syntaxregeln oder durch mehr oder weniger ausgefeilte Prüfungen von Domänen und MX-Einträgen. Wenn Sie eine E-Mail zuverlässig validieren wollen, müssen Sie einen professionellen E-Mail-Validierungsdienst in Anspruch nehmen. Zusätzlich zu den oben genannten Prüfungen führen professionelle Dienste eine gründliche Simulation der Verbindung durch oder gleichen die E-Mail mit ihren Spam-Fallen-Listen ab, um die E-Mail zuverlässig zu verifizieren.

So funktioniert die php-E-Mail-Prüfung

Fast alle Dienste funktionieren auf die gleiche Weise, über eine API können wir die E-Mail in Echtzeit validieren. Dazu wird in der Regel ein Curl-Aufruf gemacht, bei dem der Dienst aufgerufen und die E-Mail zusammen mit dem Token des Dienstes übermittelt wird. Eine ausführliche Dokumentation finden Sie unter“Dokumentation E-Mail verifizieren“.

Im Falle des Dienstes verificaremails.com lautet der PHP-Aufruf:
$email = “[email protected]”;
$key = “Ihr_api_key”;
$url = “https://app.verificaremails.com/api/verifyEmail?secret=”.$key.”&email=”.$email;
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );
$Antwort = curl_exec($ch);
echo $Antwort;
curl_close($ch);

 

Wie Sie sehen können, ist der Aufruf sehr einfach. Wenn die Validierung in unseren BackOffice-Diensten durchgeführt wird, bleibt der “Schlüssel” oder das Token zur Durchführung der Validierung während des gesamten Prozesses geheim. Wir können unser Skript so ändern, dass die E-Mail-Validierung durchgeführt wird, wenn wir in unserem Registrierungsformular auf “Senden” klicken. Dieser Mechanismus ist effektiv und sicher. Der einzige Nachteil ist, dass die Validierung durchgeführt wird, sobald der Benutzer das Formular ausgefüllt hat. Die Validierung von E-Mails über die API in Echtzeit dauert in der Regel durchschnittlich 2 Sekunden, obwohl es sich um eine schnelle Überprüfung handelt, ist sie nicht unmittelbar. Eine Verbesserung dieser Methode wäre es, die E-Mail zu validieren, während der Benutzer die übrigen Formularfelder ausfüllt. Wenn wir feststellen, dass die Adresse ungültig ist, können wir dies im Formular angeben, ohne es abschicken zu müssen. Das verbessert die Benutzerfreundlichkeit des Dienstes und erhöht die Konvertierung von Registrierungen. Technisch gesehen müssen wir nur ein paar Zeilen JavaScript zu unserem PHP-Code hinzufügen.

Risiken bei der Validierung einer E-Mail in PHP mit Java Script

Obwohl der obige Aufruf sehr einfach zu implementieren ist, birgt er ein Risiko. Ich möchte Sie daran erinnern, dass wir zur Validierung der E-Mail einen Curl-Aufruf machen, bei dem wir dem E-Mail-Validierungsdienst die zu überprüfende E-Mail und das Token des Dienstes übergeben. Wenn ein Benutzer dieses Token erbeutet, könnte er E-Mails validieren.

Wie man eine E-Mail mit PHP und JavaScript sicher validiert

Bei verificaremails.com haben wir eine Bibliothek entwickelt, um dieses Risiko zu vermeiden. Obwohl die Code-Beispiele, die wir erläutern werden, ausdrücklich für Verificaremails gelten, können sie auch mit jedem anderen Dienst funktionieren. Die Bibliothek verwendet 4 Dateien:

Index.html
Verifyemails.php
Verifyemails_encrypt.php
Verifyemails-core.js

 

Was wir tun, ist, einen verschlüsselten Schlüssel in den Dateien zu verwenden, in denen wir die Validierung in Echtzeit über Ajax durchführen wollen. Selbst wenn Sie diesen Schlüssel erhalten, ist er von geringem Nutzen, da zum Zeitpunkt der Überprüfung eine Überprüfung der Domain, die den Aufruf tätigt, durchgeführt wird. Um den verschlüsselten Schlüssel zu erzeugen, führen wir “verificaremails_encrypt.php” in den Feldern aus:

define(‘TOKEN_KEY’, ‘a3_?Kd’);
define(‘TOKEN_IV’, ‘v7$!kh’);

geben wir die Schlüssel zur Verschlüsselung des Tokens des E-Mail-Validierungsdienstes an. In der Datei index.html, die unser Formular enthält, wird neben der Datenerfassung auch ein Aufruf der Datei verificaremails-core.js vorgenommen. In dieser Datei platzieren wir das verschlüsselte Token und geben an, wo sich die Dateien befinden, die die Validierung durchführen, verificaremails.php Die Datei verificaremails.php definiert 4 wichtige Parameter:

define(‘VALID_REFERER’, ‘localhost’);
Gibt an, von welchem Standort aus wir berechtigt sind, Validierungen durchzuführen.
define(‘VALIDATE_URL’, ‘https://app.verificaremails.com/’);
Zeigt an, wo sich die Anwendung zur Überprüfung von E-Mails befindet
define(‘TOKEN_KEY’, ‘a2_?Kd’);
define(‘TOKEN_IV’, ‘v6$!kh’);

Dies sind die Werte, die wir verwenden, um den Schlüssel des Verifizierungsdienstes zu verschlüsseln. Dieser verschlüsselte Schlüssel ist derjenige, den wir in der Datei “verificaremails-core.js” verwenden werden. Die Werte dieser Felder müssen mit denen übereinstimmen, die in “verificaremails_encrypt.php” definiert sind. Um festzustellen, ob der Aufruf korrekt ist, haben wir am Ende der Datei verifyingemails.php ein if, in dem wir festlegen, nach welchen Kriterien eine Adresse korrekt ist:

if ($Antwort == ‘ok’ oder $Antwort == ‘ok_for_all’ oder $Antwort == ‘accept_all’) {
echo ‘1’;
} sonst {
echo ‘0’;

Um alle Fehlercodes herauszufinden, können Sie die Ergebnisleitfaden für die E-Mail-Validierung

Der Validierungswert wird an die Datei “verificaremails-core.js” weitergegeben, die ihn wiederum an index.html weitergibt, die das Formular enthält. Sobald der Benutzer die E-Mail-Adresse in das Feld mit id=”email” eingegeben hat, erfolgt der Ajax-Aufruf, während der Benutzer die übrigen Felder ausfüllt. Im Hintergrund wird die Validierung durchgeführt, so dass wir vor dem Senden der Daten wissen, ob sie gültig sind. Abgesehen von der Verringerung der Latenzzeiten bei der Überprüfung der E-Mail, sichern wir das Token auch gegen Diebstahl. Ich weiß, es mag kompliziert erscheinen, aber wenn Sie die Dateien erst einmal haben, ist ihre Verwendung sehr einfach, selbst wenn Sie sie auf andere Sprachen wie Ruby, Python oder Java portieren möchten. Wenn Sie ein Kunde von verificaremails sind und E-Mails über JavaScript validieren möchten, wenden Sie sich bitte an unser Support-Team, um die Dateien zur sicheren Validierung von E-Mails in PHP anzufordern. Wenn Sie möchten, können wir auch die Implementierung übernehmen.

- VERBESSERN SIE DIE QUALITÄT IHRER DATEN AUF EINFACHE WEISE -




vERIFY EMAILS TELEPHONES, POSTADRESSEN NAMEN UND NACHNAMEN...