For noget siden diskuteredes her fremmedes brug af linkning til
fotografers sites - overtrædelse af ophavsret -
I en anden forbindelse er jeg faldet over dette php-noget, der skulle
kunne forhindre omtalte stunt. Håber, nogen kan bruge det.
copy:
Undgå deeplinking
I nogle situationer kan det være en fordel, at forhindre folk i at linke
til ens billeder. Jeg har lavet nedenstående eksempel der gør netop
dette.
Jeg går udfra, at php scriptet hedder show_img.php, og at billedet der
skal vises i stedet for originalen hedder not_allowed.png. Billederne
ligger i biblioteket /img.
Første del skal i .htaccess:
Action php-img-parser /img/show_img.php
<FilesMatch ".*.(jpe?g|png|gif)$">
SetHandler php-img-parser
</FilesMatch>
IndexIgnore not_allowed.png show_img.php
.... og php koden til at fortolke det:
<?php
$img = array_pop(explode("/", $_SERVER['PATH_INFO']));
$content_types['jpeg'] = "image/jpeg";
$content_types['jpg'] = "image/jpeg";
$content_types['gif'] = "image/gif";
$content_types['png'] = "image/png";
if (file_exists("./".$img)) {
$url_ref = parse_url($_SERVER['HTTP_REFERER']);
if ($url_ref[host] == $_SERVER['HTTP_HOST']) {
header("Content-Type:
".$content_types[array_pop(explode(".", $img))]);
readfile($img);
}
else {
header("Content-Type: ".$content_types['png']);
readfile("not_allowed.png");
}
}
else {
$error = $_SERVER[SERVER_PROTOCOL]." 404 not found";
header($error);
print $error;
}
?>
Man kan også lave en ren .htaccess løsning:
SetEnvIf REFERER "^
http://mbn.dk" link_ok=1
SetEnvIf REFERER "^$" link_ok=1
RewriteEngine on
RewriteCond %{ENV:link_ok} !1
RewriteRule .(jpe?g|png|gif)$ not_allowed.png
IndexIgnore not_allowed.png
Hvilket gør det samme som forgående eksempel.
Er det ikke nødvendigt at not_allowed.png vises, kan nedenstående også
bruges.
Her sendes der en forbidden-header i stedet.
SetEnvIf REFERER "^
http://mbn.dk" link_ok=1
SetEnvIf REFERER "^$" link_ok=1
<FilesMatch ".*.(jpe?g|png|gif)$">
Deny from all
Allow from env=link_ok
</FilesMatch>
IndexIgnore not_allowed.png
copy slut
Det er fundet her:
<
http://mbn.dk/?aid=47>
med venlig hilsen
M.
--
[dit mod er blot din evne til at undertrykke din angst(ml)]