Uutiset:

Ei uusia uutisia.

Main Menu

Hotlink-estot

Aloittaja weatherc, lauantai, 18.12.2010, 18:20

« edellinen - seuraava »

0 Jäsenet ja 1 Vieras katselee tätä aihetta.

weatherc

Kuten hyvin tiedämme voi nuo hotlinkkaukset olla ärsyttäviä ja jossain tapauksissa myös kaistaa syöviä...

Tässä 2 erilaista helppoa php-pohjaista systeemiä johon olen tässä törmannyt jotka toimivat hyvin. Molemmat toimivat sillä perusteella että tarkistetaan refer-domaini eli mistä domainista kysely tulee eikä ne myöskään salli suoraa kyselyä eli että laittaa filun nimen suoraan selaimeen. ;)

Ensimmäinen on kuvan hotlink-esto jossa kuva ajetaan php:n läpi ja jos ei domaini täsmää näyetään pirulainen kuva sen oikean sijaan ;)
Kokeiluna esim. kuva joka oikeasti näyttää kamerakuvaa täällä: http://www.nordicweather.net/cam.php

<?php
if(!isset($PHP_SELF)) {$PHP_SELF $_SERVER['PHP_SELF']; }
$t pathinfo($PHP_SELF);
$Program $t['basename'];
$ourHost str_replace(''''$_SERVER[HTTP_HOST]);
$mc parse_url($_SERVER['HTTP_REFERER']);
$masterHost $mc['host'];

// If hotlinked :D
if ($ourHost <> $masterHost) {
header("Content-Type: image/gif");
$image "hotlink.gif";
readfile($image);
exit;
}

$image "cam.jpg";
header("Content-Type: image/jpeg");
readfile($image);
?>


Toinen on ihan perus php-skriptiä varten esim jos on sivu jota itse käyttää iframessa, ja se näyttää customitua Nginx-tyylistä virhesivua hotlinkattua sivua katselevalle, esim NWN:än Googlekartta käyttää tätä.
Koesivu tuolla: http://www.nordicweather.net/cache/hotlink.php

<?php
if(!isset($PHP_SELF)) {$PHP_SELF $_SERVER['PHP_SELF']; }
$t pathinfo($PHP_SELF);
$Program $t['basename'];
$ourHost str_replace(''''$_SERVER[HTTP_HOST]);
$mc parse_url($_SERVER['HTTP_REFERER']);
$masterHost $mc['host'];

if (
$ourHost <> $masterHost) { 
echo 
'<center><h1>Forbidden</h1>We don\'t allow hotlinking.</center>
<hr><center>Nordic Weathernetwork</center>'
;
exit;
 }

# Loput skriptistä tähän...
?>


;D