Avatar billede krestian Nybegynder
20. april 2011 - 12:04 Der er 6 kommentarer og
1 løsning

Password beskytte en billedefil på IIS webserver

Hej alle,

Jeg vil gerne beskytte nogle billeder på min web server, så brugerne ikke kan få adgang til billedefilerne ved at "gætte" stien og derefter deeplinke til billederne på denne måde:

http://www.domain.dk/pictures/001.jpg

Brugerne skal logge ind (PHP session) og derefter opnå rettighed til at få adgang til billedefilerne.

Kan dette lade sig gøre ved hjælp af PHP / IIS?

/Krestian
Avatar billede phillips Nybegynder
20. april 2011 - 12:13 #1
Hej Krestian

Der findes denne guide til at undgå hotlinking til billeder, men jeg tror ikke, du kan password-beskytte de enkelte billede med mindre du skifter til en Apache-server i stedet for IIS.
Avatar billede krestian Nybegynder
20. april 2011 - 14:32 #2
Hej Phillips,

Desværre ser det ikke ud til, at IIS URL Rewrite kan hjælpe mig.

Men tak for info...

/Krestian
Avatar billede repox Seniormester
20. april 2011 - 14:55 #3
Lad en PHP fil agere som virtuel mappe og præsenter billeder gennem den i stedet.
Avatar billede krestian Nybegynder
20. april 2011 - 15:03 #4
Hej repox,

Det lyder interessant.

Kan du uddybe lidt eller linke til noget kode sample?

/Krestian
Avatar billede repox Seniormester
20. april 2011 - 23:49 #5
Lav en PHP fil der tilgår en mappe uden for HTTP og præsenter billedet hvis de er logget ind - eller kan du præsentere et andet, hvis du vil.
<?php

if(!$logged_in)
{
  exit("Du er ikke logget ind");
}

$image = substr($_SERVER["PATH_INFO"], 1);
$image_path = "/sti/til/billeder/";

$image = $image_path.$image;
$tmp = explode(".", $image);
$ext = end($tmp);

switch($ext)
{
  case "jpg":
  case "jpeg":
    header("Content-Type: image/jpg");
    break;
  case "png":
    header("Content-Type: image/png");
    break;
  case "gif":
    header("Content-Type: image/gif");
    break;
  default:
    exit("Billedetypen kunne ikke genkendes");
}
if(!file_exists($image))
{
  exit("Billedet kunne ikke findes");
}

$content = file_get_contents($image);
$filesize = strlen($content);

header("Content-Length: ".$filesize);
exit($content);

?>


Scriptet er utestet, men idéen er at det skulle virke ved at du så tilgår et billede på http://example.org/image.php/mit_billede.jpg eksempelvis.
Avatar billede repox Seniormester
23. april 2011 - 19:55 #6
Er du kommet videre?
Avatar billede krestian Nybegynder
18. september 2011 - 12:24 #7
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester