Problem mit geblocktem referer
Jens
- php
Hallo Leute,
ich bin ziemlich neu in Sachen PHP und habe eben folgendes Problem entdeckt.
header("Location: $HTTP_REFERER")
funktioniert nicht, wenn der Browser keine Referer überträgt.
Kann man das Ergebnis irgendwie anders erreichen?
Jens
Hi,
Kann man das Ergebnis irgendwie anders erreichen?
nein. Der Referer darf niemals für etwas anderes als informative Zwecke verwendet werden, er besitzt _keine_ technische Nutzbarkeit.
Cheatah
Hallo Cheatah!
nein. Der Referer darf niemals für etwas anderes als informative Zwecke verwendet werden, er besitzt _keine_ technische Nutzbarkeit.
Prinzipien finde ich auch wichtig. ;-)
Aber eigentlich will den "Referer" ja auch los werden. Kann man etwas vergleichbares nicht irgendwie anders erreichen. Und sei es nur zu Übungszwecken?
Jens
Hi,
nein. Der Referer darf niemals für etwas anderes als informative Zwecke verwendet werden, er besitzt _keine_ technische Nutzbarkeit.
Prinzipien finde ich auch wichtig. ;-)
das ist kein Prinzip, sondern Tatsache.
Aber eigentlich will den "Referer" ja auch los werden.
Konfiguriere Deinen Client entsprechend.
Kann man etwas vergleichbares nicht irgendwie anders erreichen.
Etwas Vergleichbares wie was? Der Referer ist keine verlässliche Information, und damit nicht verwendbar.
Cheatah
Hi,
Kann man etwas vergleichbares nicht irgendwie anders erreichen. Und sei es nur zu Übungszwecken?
Z.B. Indem Du den URL der Herkunftsseite an den Ziel-URL anhängst oder in einen Cookie schreibst und später auswertest. Oder indem Du den Herkunfts-URL mittels JavaScript an die nächste Seite übergibst.
Gruß, Cybaer
echo $begrueszung;
header("Location: $HTTP_REFERER")
funktioniert nicht, wenn der Browser keine Referer überträgt.
Kann man das Ergebnis irgendwie anders erreichen?
Allgemein gesagt: Wenn es dir der User (sein Browser) nicht sagt, wer soll es dir sonst sagen?
Etwas spezieller (geraten): Wenn du wissen willst, welche _deiner_ Seiten der User vorher besucht hat, dann müsstest du zum einen den User wieder erkennen (Stichwort: Session) und zum anderen die Information zu besuchten Seiten (oder zur letzten besuchten Seite) irgendwo merken (Session, DB, POST/GET, ...).
echo "$verabschiedung $name";
Hallo Leute!
Ich habe eingesehen, dass man sich auf den Referer nicht verlassen kann. Ebenfalls leuchtet mir ein, dass der Browser mir die Information schon geben muss.
Also meine Anschlussfrage. Kann man so etwas wie eine Fallbacklösung schaffen? Wenn der Referer nicht übertragen wird (was wird dann eigentlich stattdessen übertragen?) dann domain/index.php? Geht sowas?
Danke für eure Geduld!
Jens
Hi,
Also meine Anschlussfrage. Kann man so etwas wie eine Fallbacklösung schaffen?
nein.
Wenn der Referer nicht übertragen wird (was wird dann eigentlich stattdessen übertragen?)
Nichts oder eine beliebige andere URL. Es existiert keine Unterscheidungsmöglichkeit.
Cheatah
Hi,
Nichts oder eine beliebige andere URL.
Oder ein beliebiger _String_ …
cu,
Andreas
Hallo,
Nichts oder eine beliebige andere URL.
Oder ein beliebiger _String_ …
Naja, ein _beliebiger_ String nicht ;-)). Ein String, welcher mit
( absoluteURI | relativeURI )
übereinstimmt, muss es eigentlich schon sein.
http://www.w3.org/Protocols/rfc2616/rfc2616-sec14.html#sec14.36
Ein sehr strict ausgelegter HTTP-Server müsste z.B.:
Referer: Das%ist%ein%Test
eigentlich mit 400 Bad Request beantworten.
viele Grüße
Axel
Hi,
Nichts oder eine beliebige andere URL.
Oder ein beliebiger _String_ …
Naja, ein _beliebiger_ String nicht ;-)).
richtig. MudGuard hat aber insofern Recht, als man sich auch darauf nicht unbedingt verlassen sollte :-)
Cheatah
Hi,
Es existiert keine Unterscheidungsmöglichkeit.
Zumindest sofern JavaScript aktiviert ist, ist eine Unterscheidungsmöglichkeit gegeben.
Gruß, Cybaer
Hi,
Zumindest sofern JavaScript aktiviert ist, ist eine Unterscheidungsmöglichkeit gegeben.
nein. Zumal "JavaScript ist aktiviert" kein Boole'scher Wert ist.
Cheatah
Hi,
Zumindest sofern JavaScript aktiviert ist, ist eine Unterscheidungsmöglichkeit gegeben.
nein.
OK, laß es mich anders formulieren: "Unter Benutzung von JavaScript kann man herausfinden, ob der Referrer echt ist, oder ob er gefälscht wurde. Cheatah weiß allerdings nicht wie."
Diese Aussage dürfte es dann wohl genau treffen. ;->
» Zumal "JavaScript ist aktiviert" kein Boole'scher Wert ist.
Ja und?
Gruß, Cybaer