Hindre linking inn

kongen

kongemedlem
Kan man hindre at en artikkel/side vises når andre linker inn til artiklen?

Altså at man MÅ komme fra mittdomene.no for å kunne se mittdomene.no/artikkel, og hvis staten.no linker til mittdomene.no/artikkel så sjekker et script eller lignende at leser ikke kommer fra mittdomene.no og blir derfor videreført til hovedsiden til mittdomene.no? Går dette på .htm side?
 
Det korte svaret: Ja, dette er mulig både med Javascript (document.referrer) og med serversidespråk som PHP ($_SERVER['HTTP_REFERER']). Det er dog ikke 100 % bombesikkert, da referrer-verdien kan endres manuelt av dem som kan sånt.

Det enda kortere, men dypere, svaret: Hvorfor i alle dager ønsker du å gjøre noe slikt? Dyplinking er en GOD ting!
 
Hvordan da, mener du? Get-variabler er jo lette å kopiere og vil derfor ikke fungere her. Dersom jeg har en link på forsiden min til artikkel_om_jesus.php?kryptisk=smellfeit, kommer jo linkene andre folk velger å legge ut til samme artikkel også ha samme GET-variabel. Folk kommer ikke til å gå inn i URL-en og fjerne denne.

Dog, en måte man kunne *nesten* løse dette på med get-variabler er dersom man har et script på alle sidene sine som regner ut en kodesnutt basert på dagens dato (for eksempel; de ni første bokstavene av md5()-verdien av date('dmY'), og sørger for at alle interne linker får denne føyd til som en get-variabel. Er ikke denne variabelen satt til riktig verdi, lar man være å vise innholdet og redirecter heller til hovedsiden. Det går an. Da vil folk kunne kopiere linken, riktignok, men ved midnatt vil linken slutte å virke og man vil bli sendt til hovedsiden når man klikker den.

Men for rene HTML-filer uten bruk av PHP må man bruke Javascript til dette. Ja, det betyr at ting ikke vil virke dersom brukerne slår av JS. Og uansett virker ikke referrer-variabelen i 100 % av tilfellene fordi verdien av den kan endres, som sagt. Men det er den beste løsningen jeg kan tenke meg.
 

Mr Vest

Sjefen over alle sjefer!
Ja, pokker, jeg rotet når jeg skrev forige innlegg. Det jeg mente var: Dersom vi bruker noe slikt som IF REFFERER = DOMENE:COM da burde det jo funke bra og printe ut artikkelen dersom REFFERER = DOMENE.com og ikke er DRITTDOMENE.com.? Og da samt også slenge alle fra DRITTDOMENE.com videre til f.eks XXX.com?
 
Ja, såklart det funker. Men igjen minner jeg om -- for å sitere php.net om $_SERVER['HTTP_REFERER']:

The address of the page (if any) which referred the user agent to the current page. This is set by the user agent. Not all user agents will set this, and some provide the ability to modify HTTP_REFERER as a feature. In short, it cannot really be trusted.

En annen ting man må huske er selvsagt å trimme den referen scriptet returnerer før man bruker den: Dersom man bare ber det om å videresende alle som ikke kommer fra hxxp://domene.com, vil det også videresende alle som kommer fra f.eks. hxxp://www.domene.com eller hxxp://domene.com/side1.html eller ...

Men ja, det var jo det der jeg foreslo.
 

tyr897

Medlem
Du kan også gjøre det via .htaccess, men det blir essensielt samme fremgangsmåte (http_referer headeren).

Men som andre lurer jeg også på om dette egentlig er en sunn strategi
 

skogtrollet

Medlem
PHP:
<?php
$ref = $_SERVER["HTTP_referer"];

if(isset($ref)
{
	if(!strstr($ref, "sau.no")
	{
		$show = "no";
	}
	else
	{
		$show="yes";
	}
}

if($show=="yes")
{
	// print artikkel her
}
?>

Koden er ikke testet.
 
Sist redigert:
Topp