$HTTP_REFERER / externe Aufrufe eines Skripts verhindern
Steffi
- php
Hallo!
Folgendes bereitet mir Kopfzerbrechen:
ich habe auf einem Server ein PHP-Sript, welches Formulardaten entgegennimmt und verarbeitet.
Ich möchte verhindern, dass dieses Skript von Webseiten, die auf anderen Servern liegen, angesteuert werden kann.
Allerdings sind auf unserem Server auch Domains gehostet, die das Sript ansteuern dürfen.
auf $HTTP_REFERER kann man sich laut PHP-Referenz nicht verlassen... ("Dieser Header wird vom Browser gesetzt, aber nicht von allen. Einige Browser bieten die Möglichkeit, den HTTP_REFERER zu modifizieren.")
abgesehen davon lieferte mir gethostbyname($HTTP_REFERER) nicht die IP-Adresse..
Über effiziente Vorschläge würde ich mich riesig freuen :D
Hallo!
Über effiziente Vorschläge würde ich mich riesig freuen :D
Es wird Dir nur die Session übrig bleiben, die Masse abzuhalten - ganz abstellen kann man soetwas nicht.
Sollte es um ein Admin-Formular gehen, und nur den Kunden zugängig sein, dann hilft die auch Passwortschutz des Servers (üblicherweise apache mit .htaccess)
http://de3.php.net/manual/de/ref.session.php
http://httpd.apache.org/docs-2.0/mod/mod_access.html
http://de.selfhtml.org/diverses/htaccess.htm
Gruß aus Berlin!
eddi
Hallo!
Eddi, danke für deine Hilfe...
htaccess wird nicht funktionieren, da ich kein Login einbauen kann, da es frei zugängliche Formulare (auf HTML-Seiten) sind, die das PHP-Skript ansteuern.
(Das PHP-Skript nimmt die Formular-Inhalte entgegen. In Hidden-Feldern stehen Absender und Betreff etc. drin. Das Skript verschickt die Formularinhalte an eine im Formular angegebene Emailadresse.. Es sind bspw. Kontaktformulare die das Skript ansteuern.)
An Sessions hatte ich auch schon gedacht.. aber ddann müssen so arg viele Seiten modifiziert werden, dass ich nicht sicher bin, ob der Aufwand das Ergebnis rechtfertigt... :)
Grüße aus Kassel
Steffi ;o)