Fehlende Indices in $_SERVER

Bash, Shell, PHP, Python, Perl, CGI
mkss
Posts: 12
Joined: 2004-12-23 01:22

Fehlende Indices in $_SERVER

Post by mkss » 2004-12-25 00:42

Hallo,

ich habe auf meinem Rootserver (1&1) laut phpinfo() einige Indices ('Indexe'?) nicht zur Verfügung - Zugriffsversuche darauf quittiert PHP mit Fehlermeldungen. Speziell handelt es sich um REMOTE_HOST (wobei REMOTE_ADDR existiert) und HTTP_REFERER.

Mit dem ersten kann ich soweit leben, aber wie bekomme ich ohne HTTP_REFERER einfach heraus, von welcher URL aus mein aktuelles Skript aufgerufen wurde? Ich benötige dies für Sicherheitsfunktionen innerhalb einiger Scripts.

PHP-Version ist 4.3.4, läuft als Apache-Modul.

TIA,
Michael

wgot
RSAC
Posts: 1707
Joined: 2003-07-06 02:03

Re: Fehlende Indices in $_SERVER

Post by wgot » 2004-12-25 02:27

Hallo,
mkss wrote:REMOTE_HOST
ist bei mir in phpinfo() garnicht drin - hast Du eine andere? :oops:

REMOTE_HOST ist der Reverse-Lookup der IP des Besuchers. Entweder der hat keine oder Dein Server kann sie nicht bestimmen. Prüfe erstmal ob deine Einwahl-IP einen Reverse hat.
HTTP_REFERER.
Das ist die URL unter der ein Link auf deine Seite angeklickt wurde. Wenn die URL deiner Seite direkt eingegeben oder ein Bookmark verwendet wurde gibt's keinen Referer. Bei manchen Browsern (z.B. Opera) kann man den Referer auch sperren, da kann der Serverbetreiber nichts dagegen machen.
Ich benötige dies für Sicherheitsfunktionen innerhalb einiger Scripts.
Dann mußt Du dabei einplanen daß manche Opera-Surfer die Referer-Sperre einschalten.

Gruß, Wolfgang

mkss
Posts: 12
Joined: 2004-12-23 01:22

Re: Fehlende Indices in $_SERVER

Post by mkss » 2004-12-25 10:18

Hallo Wolfgang,
mkss hat folgendes geschrieben:
REMOTE_HOST

ist bei mir in phpinfo() garnicht drin - hast Du eine andere?
Ich kenne die von PHP unter IIS (Windows). Da die Scripts vornehmlich auf IIS geschrieben werden, vermisse ich die jetzt natürlich. Aber das ist das kleinere Ã?bel ...
HTTP_REFERER.

Das ist die URL unter der ein Link auf deine Seite angeklickt wurde. Wenn die URL deiner Seite direkt eingegeben oder ein Bookmark verwendet wurde gibt's keinen Referer. Bei manchen Browsern (z.B. Opera) kann man den Referer auch sperren, da kann der Serverbetreiber nichts dagegen machen.
Hmm.. ich wollte eigentlich prüfen, ob das Script von einer Seite auf demselben VHost/Server aufgerufen wird, um Missbrauch 'von aussen' zu verhindern. Mit Sessions arbeiten geht nicht, weil die aufrufenden Seiten HTML sind, und dagegen kann ich leider nicht viel tun. Dann muss ich das einfach mit Cookies und JavaScript lösen.
Und wenn Cookies oder REFERER oder JavaScript deaktiviert werden, kann ich die Funktion einfach nicht anbieten. Sicherheit geht vor, denke ich. Und damit muss der Seitenbesucher eben leben. Es geht im Speziellen um eine Art Formmailer mit konfigurierbaren Parametern.

Frohe Festtage!
Micha

User avatar
Joe User
Project Manager
Project Manager
Posts: 11616
Joined: 2003-02-27 01:00
Location: Hamburg

Re: Fehlende Indices in $_SERVER

Post by Joe User » 2004-12-25 10:50

PayPal.Me/JoeUserFreeBSD Remote Installation
Wings for LifeWings for Life World Run

„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.

wgot
RSAC
Posts: 1707
Joined: 2003-07-06 02:03

Re: Fehlende Indices in $_SERVER

Post by wgot » 2004-12-25 18:27

Hallo,
mkss wrote:[REMOTE_HOST] vermisse ich
kannst Du natürlich auch unter Linux ermitteln, steht nur nicht in der phpinfo.
Hmm.. ich wollte eigentlich prüfen, ob das Script von einer Seite auf demselben VHost/Server aufgerufen wird, um Missbrauch 'von aussen' zu verhindern.
Oh je - es ist kein Problem beim Aufruf einen falschen Referer zu übergeben. Natürlich nicht mit dem Browser, aber in C oder PHP ist das schnell geschrieben...
Es geht im Speziellen um eine Art Formmailer mit konfigurierbaren Parametern.
... und wird schon seit Jahren von Spammern gemacht um genau diesen vermeintlichen Schutz auszuhebeln.

Gruß, Wolfgang

cybermage
Posts: 158
Joined: 2002-12-10 22:10
Location: Ausgburg (Germany)

Re: Fehlende Indices in $_SERVER

Post by cybermage » 2004-12-25 18:57

wenn die anfrage von einer reinen html seite kommt, dann binde auf der eine grafik ein die per php automatisch generiert wird. und zwar so ein lustiger buchsteben/zahlencode.
den muss der user abtippen und du kannst serverseitig speichern, dass diese ip mit diesem code innerhalb der nächsten 5min das formular genau einmal benutzen darf.
keine cookies
kein javascript
kein referer ;)

mkss
Posts: 12
Joined: 2004-12-23 01:22

Re: Fehlende Indices in $_SERVER

Post by mkss » 2004-12-26 00:26

Erstmal vielen Dank an alle. Die genannten Sicherheitsaspekte hatte ich natürlich nicht bedacht. Dann wird das Modul eben nach aussen abgeschottet. Ich lasse die Konfiguration von eMail-Zielen nur noch nach einer festen Tabelle oder nach einer dynamischen Tabelle in einer Datenbank zu. Um verschiedene Ziele abzudecken, gebe ich dann einfach den entsprechenden Index an, statt einer vollständig frei konfigurierbaren Adresse.
Und jeder Versuch, das Skript ohne $_POST-Parameter aufzurufen, generiert eine Abuse-Mail.

Funktioniert prima - danke nochmal!!

Micha