Mailinglisten-Archive |
>Es wurde mir empfohlen, bevor man ein Formular abgesendet, bestimmte Zeichen >zu maskieren oder ganz zu entfernrn, da sie unter Umstaenden Hackern Zutritt >zum System erlauben koennten. Nun bin ich jedoch damit etwas unerfahren. >Frage: >- Ist das Unfug und wenn nein, um welche Gefahr handet es sich konkret ? > - Falls es notwedig ist, um welche Zeichen handelt es sich dabei ? Jemand kann da sicher definitiveres dazu sagen, ich denke (keine Gewißheit), daß es ziemlich sicher ist, die mail()-Funktion von PHP3 ohne Überprüfung der Argumente zu benutzen. Klassische Backdoors wie "tobias_(at)_dnet.it;mail tobias_(at)_dnet.it</etc/passwd;" als Empfängeradresse funktionieren jedenfalls nicht. >Meine Erfahrungen mit Regulaeren Ausdruecken sind noch bescheiden. >Bitte: >> eregi("[a-z0-9_\.\-]*_(at)_[a-z0-9_\.\-]*", $email) >Kannst Du dazu mal was posten, irgendwie ist das fuer mich nicht >ohne weiteres zu durchschauen... Die Expression testet auf: - beliebig viele Zeichen (*)aus der in Klammern spezifizierten Menge (alle Buchstaben, alle Ziffern, Unterstrich, Punkt (escaped, da der Punkt sonst "ein beliebiges Zeichen" bedeutet), Bindestrich (escaped, da er sonst einen Von-Bis-Asudruck bezeichnet)) vor dem "_(at)_". - dasselbe nach dem "_(at)_". Es sollte also zumindest noch auf den Punkt im Domain-Namen geprüft werden. Ganz gute Kurz-Referenz: man egrep. Ausführlicher: "Mastering Regular Expression", O'Reilly, siehe htmlwizard.net. In der nächsten Sonntag erscheinenden Ausgabe von phpTidbits <http://www.htmlwizard.net/phpTidbits/> geht's um solche (nützliche) reguläre Expressionen. Mit freundlichen Grüßen, Tobias Ratschiller
php::bar PHP Wiki - Listenarchive