WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Sätta Referer-header? (https://www.wn.se/forum/showthread.php?t=14964)

dlinder 2006-07-06 14:43

Citat:

Originally posted by WizKid@Jul 6 2006, 14:23
Men cURL och att skicka besökaren vidare är det stor skillnad på. När servern hämtar ner en sidan via cURL eller tex fopen så kan du självklart sätta Referer. Däremot om du ska skicka vidare en besökare med header() eller liknande så kan du inte sätta Referer. Detta eftersom det är webbläsaren som sätter Referer-headern och den tillåter inte att servern ändrar på den.
Aha, tack för förklaringen! Är inte alls insatt i cURL.

dlinder 2006-07-06 14:59

Citat:

Originally posted by Blackex@Jul 6 2006, 14:34
Ett tips till dlinder, för att kolla vilka headers som sätts, är att göra en sida som endast innehåller

Kod:

<?php phpinfo() ?>
Gör dina redirects till den sidan. Där kan du läsa av alla headers som skickas (plus en massa annat).

Utmärkt funktion, tack! Innan använde jag ett rätt rörigt asp-script som jag fått från en kompis.

Dock får jag det inte att funka med meta refresh. Kör följande php-kod:

<?php

echo '<meta http-equiv="Refresh" content="0;URL=http://www.domän.com/phpinfo.php">'

?>

Phpinfo har i det läget inte ens HTTP_REFERER med som värde, dvs inte ens en ruta med "no value". Skapar jag istället en vanlig länk som länkar till phpinfo-scriptet fungerar det bra.

Vad gör jag för fel?

Tack för all hjälp.

Blackex 2006-07-06 15:11

Hej igen!

Jag hade fel. En meta refresh skickar inte med någon referer alls. Den blir blank. Sorry!

Jag tittade in en på en sida som jag vet använder sig av redirect för att gömma referern. Så här bär de sig åt. Själva redirecten fungerar. Men jag visste inte att man kan göra på det här sättet. Och jag tror faktiskt inte att själva referer biten fungerar (det borde inte fungera). Men du kan prova och se vad du får för resultat:

Kod:

<?php
header("Referer: http://www.valfri-referer.com");
header("Refresh: 0; url=http://www.new-location.com");
?>


eg0master 2006-07-06 16:02

Om du hemskt gärna vill ha refernern så kan du ju skapa en egen header.
En browser som följer standarden skall så vitt jag minns skicka tillbaka alla okända headrar den får från servern tillbaka till servern vid nästa request. Kräver dock att du kör på samma server iofs...

Så i princip borde det vara möjligt att göra:
Kod:

header('MyReferer: ' . <the referer>);
header('Location: some other place');

och sedan på destinationen kolla om MyReferer finns innan du kollar Referer.

dlinder 2006-07-06 19:12

Blackex:

Som du misstänkte fungerade Referer-biten tyvärr inte.

Det sjuka i allt det här är att jag enligt min logg har lyckats uppdatera om Referer-headern på en redirectsida EN gång, men kan inte för mitt liv komma på hur jag gjorde...

eg0master:

Ingen dum idé alls! Dessvärre kommer detta utnyttjas även utanför min sajt varför en standardiserad Referer-header i princip är nödvändig.

eg0master 2006-07-06 21:27

Citat:

Originally posted by dlinder@Jul 6 2006, 19:12
Ingen dum idé alls! Dessvärre kommer detta utnyttjas även utanför min sajt varför en standardiserad Referer-header i princip är nödvändig.
Fast om någon tar sig tid att göra ett script som använder sig av din specilheader kan de väl lika gärna fixa ett script för att fejka den riktiga referer-headern. Den senare är ju mycker mer troligt egentligen.

Men vad är det du vill skydda egentligen.


Alla tider är GMT +2. Klockan är nu 06:11.

Programvara från: vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Svensk översättning av: Anders Pettersson