WN

WN (https://www.wn.se/forum/index.php)
-   Serversidans teknologier (https://www.wn.se/forum/forumdisplay.php?f=4)
-   -   Om besökaren kommer från en annan sida så... (https://www.wn.se/forum/showthread.php?t=21229)

Spindel 2007-05-13 21:56

Någon som lite snabbt kan säga server-variabeln för att kolla om besökaren ursprungligen kommer från servern eller från en annan sida?

Om besökaren kommer från servern
- Ladda ned filen
Else
- Visa en annan sida

Använder Apache och PHP.

SimonP 2007-05-13 22:27

$_SERVER['HTTP_REFERER']

Nått sånt här borde funka:
Kod:

if(isset($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'], 'domain.com'))
{
  echo ´du kommer ifrån domain.com´;
}
else
{
}

Jag brukar använda mig av detta script för att kolla variabler om man glömt av nån:
http://www.cryptonsystems.com/download/formvars.php
http://www.cryptonsystems.com/download/formvars.zip

Edit:
HTTP_REFERER syns bara med formvars.php ifall det anropas ifrån en länk/post.

Spindel 2007-05-13 22:54

Tack SimonP! Fungerade kanon.

jomper 2007-05-13 23:42

Men om den som surfar kör med Nortons firewall så är referer alltid blank = problem.

Magnus_A 2007-05-13 23:43

Använd kakor eller kollar om det finns ett session-id

Spindel 2007-05-13 23:50

Citat:

Originally posted by jomper@May 13 2007, 22:42
Men om den som surfar kör med Nortons firewall så är referer alltid blank = problem.

Oj, det var ju inte så bra :(

Finns det någon lösning utan cookies?

Edit: Hmm... Borde fungera ifall jag även tillåter att referer är blank? Hur ska koden se ut då?

Magnus_A 2007-05-14 10:18

Session-id går ju även att använda kaklöst.

Filip 2007-05-14 22:48

Jag använder mig av ett script som genererar länkar som bara är giltiga under en begränsad tid.
Om man är en liten hacker, så är det ganska enkelt att trots allt få tag på de länkarna som genereras. Men tydligen har ingen orkat göra det. Så metoden fyller sitt syfte!

Fördelar: Sätter inga som helst krav på användarens möjlighet att använda HTTP_REFERER eller COOKIE
Nackdel: Det går att hacka om man verkligen vill (men man kan hacka HTTP_REFERER om man verkligen vill det också)

Spindel 2007-05-15 18:05

Ingen som vet hur följande kod skall se ut så att det även fungerar ifall HTTP_REFERER är blankt?
Kod:

if(isset($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'], 'domain.com'))
{
 echo ´du kommer ifrån domain.com´;
}

För lösningen fungerar jättebra nu bortsett från att det inte går att ladda ned om inte webbläsaren skickar med HTTP_REFERER.

mr_lundis 2007-05-15 18:40

Kod:

if((isset($_SERVER['HTTP_REFERER']) && stristr($_SERVER['HTTP_REFERER'], 'domain.com')) || (empty($_SERVER['HTTP_REFERER'])))
{
 echo ´du kommer ifrån domain.com´;
}

Borde nog fungera, jag har dock inte testat koden....


Alla tider är GMT +2. Klockan är nu 19:16.

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