phpbar.de logo

Mailinglisten-Archive

[php] Wie kann man verschiedene Daten aus einem Formular verknüpfen.

[php] Wie kann man verschiedene Daten aus einem Formular verknüpfen.

Marita Betz m.betz at gaponline.de
Mon Mai 7 22:00:09 CEST 2007


Hallo Lutz,

Lutz Zetzsche schrieb:
> Hallo Marita,
>
> Am Sonntag, 6. Mai 2007 schrieb Marita Betz:
>   
> Da Du zu Deiner Frage ja schon jede Menge Antworten bekommen hast, 
> möchte ich mich auf einen äußerst wichtigen Hinweis beschränken, weil 
> Du - wie Du sagst - mit PHP, und ich vermute mit Programmierung 
> allgemein, noch nicht soviel Erfahrung hast.
>
> Generell ist es von fundamentaler Bedeutung, daß Du jegliche 
> Benutzereingabe vor der Verwendung in einem Programm prüfst. (Im 
> angloamerkanischen Raum sagt man gerne "to sanitise" dazu. :-D) Zu 
> dieser Prüfung gehört u.a., ob der Variablentyp stimmt, ob die 
> Feldlänge stimmt, ob der Wertebereich bzw. Inhalt stimmt. Dabei ist 
> Variablen, in denen Du Zahlen als Übergabe erwartest, genau dieselbe 
> Aufmerksamkeit zu widmen, weil gerade hier - wenn man an 
> SQL-Einschleusung denkt -, hervorragende Angriffsmöglichkeiten 
> bestehen, wenn man anstatt einer Zahl z.B. einen Teil eines SQL-Befehls 
> übergibt und dieser ungeprüft in eine Datenbankabfrage übernommen wird.
>
>   
Da hast Du sicher recht. Darauf das es sinnvoll wäre, das zu machen,
habe ich meinen Auftraggeber auch schon hingewiesen.

Zuerst wollte er nur überprüfen lassen, ob das Feld Notiz leer ist oder
nicht.

Inzwischen habe ich meinen Auftraggeber ja schon soweit, dass er
wenigstens die E-Mail-Adresse überprüfen lassen will.

Das geht doch mit diesen regulären Ausdrücken z. B. für die
Mail-Adresse: if (!eregi("^[0-9a-z .-]+@[0-9a-z.-]+\.[a-z]{2,6}$",
$_POST["Email"])){$fehler["Email"] ='* Bitte überprüfen Sie Ihre
E-Mail-Adresse' ;}


> Bei Mailformularen und der Verwendung der Funktion mail() sind diese 
> Sicherheitsmaßnahmen von besonders elementarer Bedeutung, weil Du Dein 
> Mailformular mit einer direkten Übernahme der übergebenen Daten in die 
> Funktion oder durch eine unzureichende Prüfung der Daten in 
> Null-Komma-Nichts in eine Spamschleuder erster Klasse verwandelst. Die 
> mail()-Funktion selbst beinhaltet nämlich keinerlei Schutzfunktionen, 
> wie z.B. vor allem die Verhinderung von Mail-Header-Einschleusung.
>
>   
Wie kann ich das verhindern?
> Und glaube ja nicht, das würde Dich nicht treffen wird, weil Dich keiner 
> kennt. ;-) Bei jeder Website, die ich beruflich und privat betreue, 
> wird regelmäßig versucht, die Mailformulare für den Spamversand zu 
> mißbrauchen. Die Gefahr ist also mehr als real. Sollte der Spamversand 
> dann auch noch funktionieren, kann das zu juristischen Problemen 
> führen.
>   
Da gebe ich Dir recht, ich kenne die Problematik. Diese Gefahr wird
gerne von den Auftraggebern unterschätzt. Ich werde Deine Mail gerne an
meinen Auftraggeber weitersenden damit er sieht, dass nicht nur ich das
mit der Spamgefahr sehe. Mein Auftraggeber ist der Meinung, dass dies
wahrscheinlich nicht so schlimm ist und falls es doch schlimm wird, dann
ergreift man halt dann Gegenmaßnahmen, aber dann ist es eigentlich schon
zu spät. Dann kann man sich eigentlich nur noch eine neue E-Mail-Adresse
zulegen. :-(

> Es gab hier mal u.a. folgende Diskussion, die Du Dir zu diesem Thema 
> einmal durchlesen kannst:
> http://lists.phpbar.de/pipermail/php/Week-of-Mon-20051128/021444.html
>
>   
Danke, lese ich mir mal durch.
> Dort wird u.a. auch folgender Artikel erwähnt, auf den ich Dich auch 
> hiermit gesondert hinweisen möchte:
> http://www.heise.de/security/artikel/66815
>
>   
Ja, danke für den Link.

Viele Grüße

Marita Betz


php::bar PHP Wiki   -   Listenarchive