phpbar.de logo

Mailinglisten-Archive

Re: [php] Eingabe überprüfen
Archiv Mailingliste php_(at)_infosoc.uni-koeln.de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [php] Eingabe überprüfen



>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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive