phpbar.de logo

Mailinglisten-Archive

[php] Kontaktformular ohne PHP

[php] Kontaktformular ohne PHP

Yannik Hampe yannikh at gmail.com
Don Sep 28 22:04:19 CEST 2006



Dominik Slany wrote:
> Hallo Liste,
> 
> ich möchte gerne auf einer Website ohne PHP-Unterstütztung (war bei
> meinem DSL-Tarif dabei) ein Kontaktformular betreiben.
> 
> Habs halt so realisiert, dass die Formulardaten an eine externe Website
> mit PHP-Support gesendet werden, und dort die mail-Funktion aufgerufen
> wird. Um den Missbrauch etwas einzuschränken wird im externen PHP-Skript
> die Variable $_SERVER['HTTP_REFERER'] überprüft, ob das Skript auch von
> der anderen Website aus aufgerufen wurde.
> 
> Nun hab ich aber gelesen, dass nicht jeder Browser die URL-Übergabe
> korrekt unterstützt.
> 
> Habs unter Windows mit dem IE 6, Firefox 1.5.0.7 und unter Ubuntu Linux
> mit dem Firefox ausprobiert, mit allen Browsern und Systemen hats auch
> geklappt.
> 
> Kann ich das Kontaktformular vielleicht "Browser-sicherer" oder
> eleganter lösen? Ich möchte aber wenn möglich schon bei PHP bleiben...
> 
> Vielen Dank schonmal für Eure Hilfe!
> 
> cu
> Dominik
> 
> 
Alle aktuellen ernstzunehmenden Browser unterstützden den referrer zwar
korrekt, aber der refferer lässt sich auch relativ leicht abschalten (im
Opera sogar über eine Schnelleinstellungsleiste) und ich halte es für
durchaus realistisch, dass anonymisierungssoftware und der gleichen auf
diese Einstellunegn zugreifen und diese verändern.

Weil der Referer aber sowieso nur Browserabhängig ist, kann man ihn eben
so leicht fälschen.
Wer sich gut genug auskennt um den Quelltext deines Formulars anzusehen
und abzulesen, welche Variabeln er wie übergeben muss und dass noch in
ein Programm zum Missbrauch einbauen kann, schafft es dann auch noch den
Referrer zu fälschen. Insofern ist der Referrer eh kein Schutz und
schade im Zweifell nur.

Einen wirklich gueten Schutz vor Missbrauch fällt mir hier nicht ein.
Selbst, wenn das Forumlar und dein php-Skript auf dem gleichen Server
liegen würden sehe ich keine Methode, die man nicht ebensoleicht umgehen
kann, wie den Referrer.

Du kannst allerdings gewisse Einschränkungen umsetzen:
Zum Beispiel kannst du die IP-Adresse des Absenders speichern. Dann darf
jede IP nur alle 60 Sekunden (oder sowas) das Formular abschicken. So
kannst du wenigstens schonmal verhindern 1000 Mails pro Sekunde zu bekommen.

Aber wenn es wirklich jemand darauf anlegt dein Kontaktformular zu
missbrauchen (bzw.. was kann man da gross missbrauchen? Man kann es
eigentlich nur dazu benutzen dich zuzuspammen), dann schafft der das
auch. Mit so Sachen wie Zeitschutz kannst du die Ausmasse im Endeffekt
auch nur Eindämmen und nicht aufhalten, aber das kann auch schon sehr
nützlich sein.

Yannik

php::bar PHP Wiki   -   Listenarchive