{"id":13535,"date":"2018-09-26T09:56:32","date_gmt":"2018-09-26T08:56:32","guid":{"rendered":"https:\/\/www.verificaremails.com\/wie-man-eine-e-mail-in-php-sicher-validiert\/"},"modified":"2018-09-26T09:56:32","modified_gmt":"2018-09-26T08:56:32","slug":"wie-man-eine-e-mail-in-php-sicher-validiert","status":"publish","type":"post","link":"https:\/\/www.verificaremails.com\/de\/wie-man-eine-e-mail-in-php-sicher-validiert\/","title":{"rendered":"Wie man eine E-Mail in php sicher validiert"},"content":{"rendered":"<p>In diesem Artikel zeigen wir Ihnen, wie Sie eine E-Mail in PHP auf sichere Weise validieren k\u00f6nnen, indem Sie verhindern, dass sie den Token unseres E-Mail-Pr\u00fcfdienstes erhalten. In den Beispielen verwenden wir den Dienst zur Validierung von E-Mails von <a href=\"https:\/\/www.verificaremails.com\/de\/\" target=\"_blank\" rel=\"noopener\">verificaremails.com<\/a>, obwohl das gleiche System f\u00fcr jeden E-Mail-Validierungsdienst funktioniert. Es gibt derzeit eine Vielzahl von Diensten, mit denen Sie E-Mails validieren k\u00f6nnen. Skriptbasierte L\u00f6sungen sind zwar ein erster Schritt, erm\u00f6glichen Ihnen aber nur die Validierung von E-Mails anhand von Syntaxregeln oder durch mehr oder weniger ausgefeilte Pr\u00fcfungen von Dom\u00e4nen und MX-Eintr\u00e4gen. Wenn Sie eine E-Mail zuverl\u00e4ssig validieren wollen, m\u00fcssen Sie einen professionellen E-Mail-Validierungsdienst in Anspruch nehmen. Zus\u00e4tzlich zu den oben genannten Pr\u00fcfungen f\u00fchren professionelle Dienste eine gr\u00fcndliche Simulation der Verbindung durch oder gleichen die E-Mail mit ihren Spam-Fallen-Listen ab, um die E-Mail zuverl\u00e4ssig zu verifizieren. <\/p>\n<h2>So funktioniert die php-E-Mail-Pr\u00fcfung<\/h2>\n<p>Fast alle Dienste funktionieren auf die gleiche Weise, \u00fcber eine API k\u00f6nnen 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 \u00fcbermittelt wird. Eine ausf\u00fchrliche Dokumentation finden Sie unter<a href=\"https:\/\/www.verificaremails.com\/de\/validar-email-php-forma-segura\/index-html\/\" target=\"_blank\" rel=\"noopener\">&#8220;Dokumentation E-Mail verifizieren<\/a>&#8220;. <\/p>\n<h5 style=\"padding-left: 30px;\"><em>Im Falle des Dienstes verificaremails.com lautet der PHP-Aufruf:<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>$email = &#8220;test@example.com&#8221;;<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>$key = &#8220;Ihr_api_key&#8221;;<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>$url = &#8220;https:\/\/app.verificaremails.com\/api\/verifyEmail?secret=&#8221;.$key.&#8221;&amp;email=&#8221;.$email;<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>$ch = curl_init();<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>curl_setopt($ch, CURLOPT_URL, $url);<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true );<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>$Antwort = curl_exec($ch);<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>echo $Antwort;<\/em><\/h5>\n<h5 style=\"padding-left: 30px;\"><em>curl_close($ch);<\/em><\/h5>\n<p>&nbsp;<\/p>\n<p>Wie Sie sehen k\u00f6nnen, ist der Aufruf sehr einfach. Wenn die Validierung in unseren BackOffice-Diensten durchgef\u00fchrt wird, bleibt der &#8220;Schl\u00fcssel&#8221; oder das Token zur Durchf\u00fchrung der Validierung w\u00e4hrend des gesamten Prozesses geheim. Wir k\u00f6nnen unser Skript so \u00e4ndern, dass die E-Mail-Validierung durchgef\u00fchrt wird, wenn wir in unserem Registrierungsformular auf &#8220;Senden&#8221; klicken. Dieser Mechanismus ist effektiv und sicher. Der einzige Nachteil ist, dass die Validierung durchgef\u00fchrt wird, sobald der Benutzer das Formular ausgef\u00fcllt hat. Die Validierung von E-Mails \u00fcber die API in Echtzeit dauert in der Regel durchschnittlich 2 Sekunden, obwohl es sich um eine schnelle \u00dcberpr\u00fcfung handelt, ist sie nicht unmittelbar. Eine Verbesserung dieser Methode w\u00e4re es, die E-Mail zu validieren, w\u00e4hrend der Benutzer die \u00fcbrigen Formularfelder ausf\u00fcllt. Wenn wir feststellen, dass die Adresse ung\u00fcltig ist, k\u00f6nnen wir dies im Formular angeben, ohne es abschicken zu m\u00fcssen. Das verbessert die Benutzerfreundlichkeit des Dienstes und erh\u00f6ht die Konvertierung von Registrierungen. Technisch gesehen m\u00fcssen wir nur ein paar Zeilen JavaScript zu unserem PHP-Code hinzuf\u00fcgen. <\/p>\n<h2>Risiken bei der Validierung einer E-Mail in PHP mit Java Script<\/h2>\n<p>Obwohl der obige Aufruf sehr einfach zu implementieren ist, birgt er ein Risiko. Ich m\u00f6chte Sie daran erinnern, dass wir zur Validierung der E-Mail einen Curl-Aufruf machen, bei dem wir dem E-Mail-Validierungsdienst die zu \u00fcberpr\u00fcfende E-Mail und das Token des Dienstes \u00fcbergeben. Wenn ein Benutzer dieses Token erbeutet, k\u00f6nnte er E-Mails validieren.  <\/p>\n<h2>Wie man eine E-Mail mit PHP und JavaScript sicher validiert<\/h2>\n<p>Bei verificaremails.com haben wir eine Bibliothek entwickelt, um dieses Risiko zu vermeiden. Obwohl die Code-Beispiele, die wir erl\u00e4utern werden, ausdr\u00fccklich f\u00fcr Verificaremails gelten, k\u00f6nnen sie auch mit jedem anderen Dienst funktionieren. Die Bibliothek verwendet 4 Dateien: <\/p>\n<h5 style=\"padding-left: 30px;\">Index.html<\/h5>\n<h5 style=\"padding-left: 30px;\">Verifyemails.php<\/h5>\n<h5 style=\"padding-left: 30px;\">Verifyemails_encrypt.php<\/h5>\n<h5 style=\"padding-left: 30px;\">Verifyemails-core.js<\/h5>\n<p>&nbsp;<\/p>\n<p>Was wir tun, ist, einen verschl\u00fcsselten Schl\u00fcssel in den Dateien zu verwenden, in denen wir die Validierung in Echtzeit \u00fcber Ajax durchf\u00fchren wollen. Selbst wenn Sie diesen Schl\u00fcssel erhalten, ist er von geringem Nutzen, da zum Zeitpunkt der \u00dcberpr\u00fcfung eine \u00dcberpr\u00fcfung der Domain, die den Aufruf t\u00e4tigt, durchgef\u00fchrt wird. Um den verschl\u00fcsselten Schl\u00fcssel zu erzeugen, f\u00fchren wir &#8220;verificaremails_encrypt.php&#8221; in den Feldern aus: <\/p>\n<h5 style=\"padding-left: 30px;\">define(&#8216;TOKEN_KEY&#8217;, &#8216;a3_?Kd&#8217;);<\/h5>\n<h5 style=\"padding-left: 30px;\">define(&#8216;TOKEN_IV&#8217;, &#8216;v7$!kh&#8217;);<\/h5>\n<p>geben wir die Schl\u00fcssel zur Verschl\u00fcsselung des Tokens des E-Mail-Validierungsdienstes an. In der Datei index.html, die unser Formular enth\u00e4lt, wird neben der Datenerfassung auch ein Aufruf der Datei verificaremails-core.js vorgenommen. In dieser Datei platzieren wir das verschl\u00fcsselte Token und geben an, wo sich die Dateien befinden, die die Validierung durchf\u00fchren, verificaremails.php Die Datei verificaremails.php definiert 4 wichtige Parameter:<\/p>\n<h5 style=\"padding-left: 30px;\">define(&#8216;VALID_REFERER&#8217;, &#8216;localhost&#8217;);<\/h5>\n<h5 style=\"padding-left: 30px;\">Gibt an, von welchem Standort aus wir berechtigt sind, Validierungen durchzuf\u00fchren.<\/h5>\n<h5 style=\"padding-left: 30px;\">define(&#8216;VALIDATE_URL&#8217;, &#8216;https:\/\/app.verificaremails.com\/&#8217;);<\/h5>\n<h5 style=\"padding-left: 30px;\">Zeigt an, wo sich die Anwendung zur \u00dcberpr\u00fcfung von E-Mails befindet<\/h5>\n<h5 style=\"padding-left: 30px;\">define(&#8216;TOKEN_KEY&#8217;, &#8216;a2_?Kd&#8217;);<\/h5>\n<h5 style=\"padding-left: 30px;\">define(&#8216;TOKEN_IV&#8217;, &#8216;v6$!kh&#8217;);<\/h5>\n<p>Dies sind die Werte, die wir verwenden, um den Schl\u00fcssel des Verifizierungsdienstes zu verschl\u00fcsseln. Dieser verschl\u00fcsselte Schl\u00fcssel ist derjenige, den wir in der Datei &#8220;verificaremails-core.js&#8221; verwenden werden. Die Werte dieser Felder m\u00fcssen mit denen \u00fcbereinstimmen, die in &#8220;verificaremails_encrypt.php&#8221; 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:  <\/p>\n<h5 style=\"padding-left: 30px;\">if ($Antwort == &#8216;ok&#8217; oder $Antwort == &#8216;ok_for_all&#8217; oder $Antwort == &#8216;accept_all&#8217;) {<\/h5>\n<h5 style=\"padding-left: 30px;\">echo &#8216;1&#8217;;<\/h5>\n<h5 style=\"padding-left: 30px;\">} sonst {<\/h5>\n<h5 style=\"padding-left: 30px;\">echo &#8216;0&#8217;;<\/h5>\n<p>Um alle Fehlercodes herauszufinden, k\u00f6nnen Sie die  <a href=\"https:\/\/www.verificaremails.com\/de\/validar-email-php-forma-segura\/index-html\/#section\/Guia-Resultados\" target=\"_blank\" rel=\"noopener\">Ergebnisleitfaden f\u00fcr die E-Mail-Validierung  <\/a><\/p>\n<p>Der Validierungswert wird an die Datei &#8220;verificaremails-core.js&#8221; weitergegeben, die ihn wiederum an index.html weitergibt, die das Formular enth\u00e4lt. Sobald der Benutzer die E-Mail-Adresse in das Feld mit id=&#8221;email&#8221; eingegeben hat, erfolgt der Ajax-Aufruf, w\u00e4hrend der Benutzer die \u00fcbrigen Felder ausf\u00fcllt. Im Hintergrund wird die Validierung durchgef\u00fchrt, so dass wir vor dem Senden der Daten wissen, ob sie g\u00fcltig sind. Abgesehen von der Verringerung der Latenzzeiten bei der \u00dcberpr\u00fcfung der E-Mail, sichern wir das Token auch gegen Diebstahl. Ich wei\u00df, 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\u00f6chten. Wenn Sie ein Kunde von verificaremails sind und E-Mails \u00fcber JavaScript validieren m\u00f6chten, wenden Sie sich bitte an unser Support-Team, um die Dateien zur sicheren Validierung von E-Mails in PHP anzufordern. Wenn Sie m\u00f6chten, k\u00f6nnen wir auch die Implementierung \u00fcbernehmen.   <\/p>\n","protected":false},"excerpt":{"rendered":"<p>In diesem Artikel zeigen wir Ihnen, wie Sie eine E-Mail in PHP auf sichere Weise validieren k\u00f6nnen, indem Sie verhindern, dass sie den Token unseres E-Mail-Pr\u00fcfdienstes erhalten. In den Beispielen verwenden wir den Dienst zur Validierung von E-Mails von verificaremails.com, obwohl das gleiche System f\u00fcr jeden E-Mail-Validierungsdienst funktioniert. Es gibt derzeit eine Vielzahl von Diensten, &#8230; <a title=\"Wie man eine E-Mail in php sicher validiert\" class=\"read-more\" href=\"https:\/\/www.verificaremails.com\/de\/wie-man-eine-e-mail-in-php-sicher-validiert\/\" aria-label=\"Mehr Informationen \u00fcber Wie man eine E-Mail in php sicher validiert\">Weiterlesen<\/a><\/p>\n","protected":false},"author":1,"featured_media":13536,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1327],"tags":[],"class_list":["post-13535","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uberprufen-sie-api-mail"],"acf":[],"_links":{"self":[{"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/posts\/13535","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/comments?post=13535"}],"version-history":[{"count":0,"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/posts\/13535\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/media\/13536"}],"wp:attachment":[{"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/media?parent=13535"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/categories?post=13535"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.verificaremails.com\/de\/wp-json\/wp\/v2\/tags?post=13535"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}