regulärer Ausdruck aka Mailsicherheitslücke
Jens
- perl
0 Wolfgang Wiese0 Jens0 Daniel Thoma0 Jens
0 Cheatah0 Jens
Hallo !
ich benutze schon seit laengerer Zeit ein CGI (Perl), das
per sendmail EMails generiert und versendet.
In diesem Programm gibt es auch eine Subroutine, die die
angegebene EMail-Adresse auf ihre Gueltigkeit hin untersucht
(ueber regulaere Ausdruecke).
Da aber die EMail-Adressen Angabe "a@b.c < /etc/passwd"
nicht abgefangen wird, hatte ich den Ausdruck um
" $email =~ /([<>]) (;)" erweitert,
was allerdings zu keinerlei Ergebnis gefuehrt hat ??
Kann mir da jemand weiterhelfen ?
Danke im Voraus !!
Bye,
Jens
Hi,
lies mal:
http://www.xwolf.com/artikel/cgisec.shtml
Da steht genau dazu ein Beispiel.
Ciao,
Wolfgang
Hi,
lies mal:
http://www.xwolf.com/artikel/cgisec.shtmlDa steht genau dazu ein Beispiel.
Ciao,
Wolfgang
Hallo Wolfgang !
danke fuer den Hinweis...
Das Mail Prog wird sowieso im Taint Mode aufgerufen...
Und der Test verlief auch negativ - abgesehen von einer unzustellbaren Mail :)
Also ist das doch relativ "sicher".. denke ich mal :)
Bis denn,
Jens
Hallo Jens
Das Mail Prog wird sowieso im Taint Mode aufgerufen...
Und der Test verlief auch negativ - abgesehen von einer unzustellbaren Mail :)Also ist das doch relativ "sicher".. denke ich mal :)
Nein. Der T-Mode liefert nur einen Fehler, wenn eingaben nicht überprüft werden.
wenn du aber sowas machst
$parameter =~ /.*/
gilt das auch als überprüft. Gegen regexp, die nichts taugen, hilft -T also nicht.
Tschüs
Daniel
Hallo Daniel !
Das Mail Prog wird sowieso im Taint Mode aufgerufen...
Und der Test verlief auch negativ - abgesehen von einer unzustellbaren Mail :)Also ist das doch relativ "sicher".. denke ich mal :)
Nein. Der T-Mode liefert nur einen Fehler, wenn eingaben nicht überprüft werden.
wenn du aber sowas machst
$parameter =~ /.*/
gilt das auch als überprüft. Gegen regexp, die nichts taugen, hilft -T also nicht.
Danke fuer den Hinweis !
Der Test mit dem Mailprog verlief auf jeden Fall negativ - also
er hatte keine EMail geschickt...
Zusaetzlich habe ich jetzt noch die beiden Methoden von Cheatah
und den XWolf Seiten eingebaut...
Sollte jetzt sicher sein ...
Verwunderlich ist nur, dass er den regulaeren Ausdruck nicht korrekt
angenommen hat ... :(
Aber egal - loeuft ja jetzt :)
Bye,
Jens
Hi,
In diesem Programm gibt es auch eine Subroutine, die die
angegebene EMail-Adresse auf ihre Gueltigkeit hin untersucht
(ueber regulaere Ausdruecke).
Da aber die EMail-Adressen Angabe "a@b.c < /etc/passwd"
[...]
perldoc perlfaq9:
"How do I check a valid mail address?
You can't, at least, not in real time. Bummer, eh?
[...]
Many are tempted to try to eliminate many frequently-invalid mail addresses with a simple regexp, such as /[1]+@([\w.-].)+\w+$/. It's a very
bad idea. However, this also throws out many valid ones, and says nothing about potential deliverability, so is not suggested. Instead, see
http://www.perl.com/CPAN/authors/Tom_Christiansen/scripts/ckaddr.gz , which actually checks against the full RFC spec (except for nested
comments), looks for addresses you may not wish to accept mail to (say, Bill Clinton or your postmaster), and then makes sure that the hostname
given can be looked up in the DNS MX records. It's not fast, but it works for what it tries to do.
[...]"
Ja, ich weiß, Du willst die Adresse gar nicht auf Existenz prüfen ;-) aber in o.g. Script findest Du eine RFC-konforme syntaktische Prüfung. Wenn Du es Dir einfacher machst als dort, sind Fehler wie der von Dir erkannte nicht auszuschließen.
Allerdings könntest Du auch ein $email =~ /^([^\s<]+)/; $email = $1; versuchen (ggf. die Blacklist darin erweitern), das müßte weitgehend(!) sicher sein.
Cheatah
\w.- ↩︎
Hi Cheatah !
Hi,
[...]
Ja, ich weiß, Du willst die Adresse gar nicht auf Existenz prüfen ;-) aber in o.g. Script findest Du eine RFC-konforme syntaktische Prüfung. Wenn Du es Dir einfacher machst als dort, sind Fehler wie der von Dir erkannte nicht auszuschließen.
Allerdings könntest Du auch ein $email =~ /^([^\s<]+)/; $email = $1; versuchen (ggf. die Blacklist darin erweitern), das müßte weitgehend(!) sicher sein.
Cheatah
ich werde das mal versuchen...
Zusammen mit der Methode auf den XWolf-Seiten sollte diese
Moeglichkeit komplett eliminiert werden...
Auf jeden Fall Danke fuer deine Hilfe !! :)
Bye,
Jens