| Ayom-Team |
Geschrieben am: Mi 16.05.2007, 15:26
|
||
|
AyomRank 1 ![]() ![]() Gruppe: Member (aktiv) Beiträge: 1 Mitglied seit: 17.11.2004 |
Diskussion zum Artikel E-Mailadressen überprüfen per Regulären Ausdrücken
in der Kategorie
PHP, Mysql & Apache
Habe hier eine einfache "Funktion" (ich weiß, dass es keine wirkliche PHP Funktion ist ;-)), die die E-Mailadresse eines User überprüft. emailadresse-ueberpruefen.php
------------------- Dieser Artikel steht unter der Creative Commons Lizenz. |
||
![]() |
| bowling-liga |
#2 Geschrieben am: Mi 16.05.2007, 15:30 (+00:04)
|
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 56 Mitglied seit: 16.05.2007 |
Dazu faellt mir ein schoenes Zitat aus den "Programming-Quotations" ein:
Manche denken, wenn sie mit einem Problem konfrontiert werden, "Oh, ich kann das mit Regular-Expressions loesen". Dann haben sie zwei Probleme. (Jamie Zawinski) Der obige Ausdruck wuerde auch folgende Zeichenkette akzeptieren: team@bowling&liga?de Beste Gruesse, den. -------------------- |
![]() |
| Sascha Ahlers |
#3 Geschrieben am: Mi 16.05.2007, 16:00 (+00:29)
|
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1699 Mitglied seit: 27.12.2004 |
Der Spruch kommt mir sehr bekannt vor, aber wer auch immer den Reguluren Ausdruck da oben geschrieben hat, der weiß zwei Saschen nicht, (1) wie Reguläre Ausdrücke richtig verwendet werden und (2) wie eine E-Mail aussehen darf.
Ich weiß bei diesen Problem nur zwei Sachen: (1) das es nicht so einfach zu lösen ist, wie die meistens denken und (2) das Reguläre Ausdrücke zur Lösung des Problems helfen können, aber wahrscheinlich nicht alleine die Lösung stellen können. -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
![]() |
| TSc |
#4 Geschrieben am: Do 17.05.2007, 10:59 (+18:59)
|
![]() AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 609 Mitglied seit: 8.11.2004 |
Wie wäre es denn mit:
"^[_a-zA-z0-9-](\.{0,1}[_a-zA-z0-9-])*@([a-zA-z0-9-]{2,}\.){0,}[a-zA-z0-9-]{2,}(\.[a-zA-Z]{2,4}){1,2}$" Zumindest was den RegExp angeht sollte das sauberer sein. Ob man sich bei der Prüfung einer Mail nur auf einen solchen verlassen sollte sei jetzt mal dahin gestellt. Gruß, Tom |
![]() |
| bowling-liga |
#5 Geschrieben am: Do 17.05.2007, 12:00 (+01:01)
|
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 56 Mitglied seit: 16.05.2007 |
Wenn man sich diesen Thread durchliest, wirkt die Idee, das mit einem regulaeren Ausdruck zu versuchen, irgendwie absurd.
Allerdings sollte man sich vielleicht fragen, was man wirklich will. Wenn die Adresse korrekt und erreichbar sein muss, braucht man ja eigentlich nur 'ne Nachricht an die Adresse zu schicken, so wie es bei der Anmeldung zum Forum zum Beispiel schon passiert. den -------------------- |
![]() |
| Sascha Ahlers |
#6 Geschrieben am: Do 17.05.2007, 13:03 (+01:02)
|
||||||||
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1699 Mitglied seit: 27.12.2004 |
Da kann ich solche E-Mail-Adressen nutzen: 1234567890123456789012345678901234567890123456789012345678901234567890@as.de __@a--s--s.abcd oder auch (als eine Mail-Adresse gesehen):
= zu diesen String (als PHP-Code dargestellt):
Aber nicht diese gültigen Adresse: user+extension@domain.de test@a.test.de test@test.museum Außerdem ist der Wertebereich A-z ziemlich problematisch, ich wüsste nicht auf anhieb, welche Zeichen da alles zugehören. Nach ISO/IEC 8859-1 wären das die folgenden Zeichen: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _ ` a b c d e f g h i j k l m n o p q r s t u v w x y z Ein einzelnes "-" müsste - bei sauberer Schreibweise - in eckigen Klammern escaped werden, da dieses normalerweise Wertebereiche makiert @bowling-liga Einen Sinn macht die Überprüfung schon, und wenn es nur darum geht zu überprüfen, dass keine ungültigen Zeichen eingegeben werden. Die Filterung von Benutzereingaben ist (insbesondere bei Webanwendungen) eine grundlegene Sicherheitsstrategie. Ich würde eine grundlegende Überprüfung durchführen, sprich die E-Mail-Adresse zerlegen, auf die richtige länge prüfen, prüfen ob nur erlaube Zeichen in einen Teilbereich verwendent werden (dazu müssen alle gültigen Zeichen bekannt sein), ob die Adresse einen FQDN besitzt und ob auch entsprechende A-/MX-Record aufzufinden sind. Und was sonst noch im Bereich des Möglichen liegt. -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
||||||||
![]() |
| TSc |
#7 Geschrieben am: Do 17.05.2007, 13:43 (+00:39)
|
||||||||||||||
![]() AyomRank 6 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 609 Mitglied seit: 8.11.2004 |
Nicht ganz, es kann nur ein @ verwendet werden. Der Rest der Adresse wäre ja auch theoretisch möglich und daher ok das die durch die Prüfung geht
Stimmt, hier besteht noch Nachbesserungsbedarf.
Stimmt, das war ein Tippfehler von mir. Müsste natürlich an allen Stellen heissen a-zA-Z0-9 Das kommt davon wenn man sowas "mal eben so" tippt... |
||||||||||||||
![]() |
| bowling-liga |
#8 Geschrieben am: Do 17.05.2007, 13:48 (+00:05)
|
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 56 Mitglied seit: 16.05.2007 |
Ich hatte obigen Thread eingelinkt, weil darin schon eine aehnliche Diskussion angestossen wurde. Ein gueltiger local-part enthaelt eben nicht nur Buchstaben von a-z, Zahlen, .-+ usw., sondern kann auch weitere Sonderzeichen und Leerzeichen enthalten, die dann entsprechend gequotet sind. Was eben bedeutet das " user !!! "@irgendeine_domain.de auch gueltig ist. Der domain-part ist mit Sicherheit einfacher zu parsen.
@Sascha Ahlers: Allerdings glaube ich eben nicht daran, dass hier das Sicherheitsproblem so praesent ist, wenn man die ueblichen Vorsichtsmassnahmen beachtet, falls Du auf MySQL-Injection hinaus willst. Die Adresse zu zerlegen und die Laengen zu pruefen, halte ich auch fuer sinnvoll. Allerdings ist die Idee mit der DNS-Abfrage in der Praxis nicht so ganz ohne Probleme. den -------------------- |
![]() |
| Sascha Ahlers |
#9 Geschrieben am: Do 17.05.2007, 14:17 (+00:28)
|
||
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1699 Mitglied seit: 27.12.2004 |
Die scheint nicht gültig zu sein (siehe rote Makierung), dieses Zeichen im nicht von der DeNIC erlaubt ist. -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
||
![]() |
| bowling-liga |
#10 Geschrieben am: Do 17.05.2007, 14:24 (+00:06)
|
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 56 Mitglied seit: 16.05.2007 |
Danke fuer die Korrektur ...
Cheers, den. -------------------- |
![]() |
| Sascha Ahlers |
#11 Geschrieben am: Do 17.05.2007, 14:26 (+00:01)
|
||||||
![]() AyomRank 8 Gruppe: Experten Entwicklung Beiträge: 1699 Mitglied seit: 27.12.2004 |
Es wird doch nur jeweils ein @ verwendet, aber der Local-Part ist bei der oberen Adresse 70 Zeichen lang und in der unteren hat der Domain-Part 2x zwei aufeinanderfolgende Bindestriche, was nicht erlaubt ist. -------------------- Joseph Joubert: "Der Verstand kann uns sagen, was wir unterlassen sollen. - Aber das Herz kann uns sagen, was wir tun müssen."
Sicherheit beim Programmieren: Top 10 application vulnerabilities in 2007 |
||||||
![]() |
| bowling-liga |
#12 Geschrieben am: Do 17.05.2007, 14:42 (+00:16)
|
![]() AyomRank 4 ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Gruppe: Member (aktiv) Beiträge: 56 Mitglied seit: 16.05.2007 |
Wobei die IDNs natuerlich mit xn-- anfangen koennen, falls man xn--mller-kva heisst ...
-------------------- |
![]() |
Thema wird von 0 Benutzer(n) gelesen (0 Gäste und 0 anonyme Benutzer)
0 Mitglieder:
« httpsadresse von plesk in php einbinden? | Programmierung Allgemein | PHP /SQL > Liste und Datum anzeigen »
Trackback-Url: http://www.ayom.com/track/t/18404
![]() |
![]() ![]() ![]() |
| Themen Titel | Autor | Views | Antworten | Letzte Aktion |
| Diskussion: Gibt es AdSense-Alternativen? | Ayom-Team | 5305 | 34 | Mo 18.08.2008, 20:17 |
| Diskussion: Login-Skript mit Sessions, PHP und ... | Ayom-Team | 159 | 2 | Mo 11.08.2008, 03:33 |
| Datenbankstruktur überprüfen und abgleichen | BartTheDevil89 | 183 | 8 | So 10.08.2008, 18:07 |
| Schweizer Adresse überprüfen | sylvia73 | 184 | 5 | Fr 11.07.2008, 13:27 |
| Diskussion: Wo gibt es gratis Schriften (fonts)? | Ayom-Team | 2099 | 9 | Do 3.07.2008, 13:08 |
| Diskussion: Flash-Anfänger - wo fängt man an? | Ayom-Team | 218 | 2 | Di 6.05.2008, 17:00 |
| Diskussion: Geocoding mit Google Map API (Koord ... | Ayom-Team | 185 | 1 | Mi 16.04.2008, 08:18 |
| Diskussion: Was ist ein Root-Server? | Ayom-Team | 282 | 1 | Do 13.03.2008, 17:57 |
| Diskussion: client-server call | Tuemmel | 295 | 5 | Sa 8.03.2008, 16:17 |
| Diskussion: Top 10 Affiliate Programme by Small-n- | Ayom-Team | 2623 | 9 | Mi 27.02.2008, 12:54 |
Anzeige - [Interessiert an einer Anzeige?]


















