---
title: "bildkoll"
type: "forum-thread"
url: "https://www.webforum.nu/amne/php/92787-bildkoll"
topic: "PHP"
topic_url: "https://www.webforum.nu/amne/php"
author: "mhedda"
published: "2003-12-16T12:58:50.000Z"
updated: "2003-12-17T23:56:52.000Z"
replies: 9
views: 346
page: 1
pages: 1
language: "sv-SE"
site: "webForum — webforum.nu"
rights: "Upphovsrätten till varje inlägg tillhör dess författare."
attribution: "Citera som: webForum, https://www.webforum.nu/amne/php/92787-bildkoll"
---

# bildkoll

## #1 — mhedda, 2003-12-16T12:58Z

Hej!
Jag undrar hur man säkerhetskollar en bild om man har  fått tillgång till hela länken till bilden, tex <http://www.bild.com/bilder/bild.jpg>
Som det är nu så sätter jag en session vid inloggning så att man bara skall kunna se vissa sidor när man är inloggad.
Men man kan ju se bilder vid hela sökvägg.
Så hur kan man skydda bilderna med hjälp av min session.

MVH

Permalänk: https://www.webforum.nu/p/92787

## #2 — mhedda, 2003-12-16T13:43Z

Någon som vet??
Hoppas ni förstår mitt problem.
Finns det något enkelt sätt??
Ska man ner på servernivå?
Isåfall hur??

MVH

Permalänk: https://www.webforum.nu/p/1229780

## #3 — mhedda, 2003-12-16T14:56Z

Kan man kanske använda session för att kolla om man har behörighet till bildmappen på något sätt kanske??

Någon som vet?
Någon som är händigare på detta än vad jag är :-)

MVH

Permalänk: https://www.webforum.nu/p/1229814

## #4 — sabbacus, 2003-12-16T18:35Z

Två lösningar jag kan komma på är följande:
1) Lägg samtliga filer utanför dokumentroten. På så sätt kan man bara komma åt de genom att webbläsaren "hämtar" dom åt en (rätta mig om jag har fel)
2) Lägg filerna i en databas. Då kan man lätt kontrollera vilka som kan komma åt filerna. Hur snällt det är att lägga filer i en databas kan jag inte svara på. Jag vet att det går (lägga som "blob"), men jag vet inte hur det blir emd prestandan.

Permalänk: https://www.webforum.nu/p/1229965

## #5 — mhedda, 2003-12-16T20:51Z

Tackar för svaret!
Om man tänker sig svar 1.
\----------------------------------------------------------------------------------
1) Lägg samtliga filer utanför dokumentroten. På så sätt kan man bara komma åt de genom att webbläsaren "hämtar" dom åt en (rätta mig om jag har fel)
\---------------------------------------------------------------------------------
Kan man via den session jag sätter vid inloggning för att skydda sidorna,
skydda bilderna på något vis så att man inte kan se dom via tex
<http://www.bild.com/bilder/bild.jpg>
om man inte är inloggad?
Det där kanske var godag yxskaft från min sida:-}
Men jag frågar iallafall:-\]

MVH

Permalänk: https://www.webforum.nu/p/1230041

## #6 — cefalk, 2003-12-17T12:55Z

Jag har gjort så här

```php
session_start();
header("Cache-Control: no-cache, must-revalidate");
header("Pragma: no-cache");
if (!$_SESSION['forum_user_id'])
	{
	print "sorry!!!!";
	exit;
	}
$user_pic = "$spara_bilder/$picture";
$image_info = getimagesize ("$user_pic") or die ("$user_pic");
if ($image_info[2] == '2')
{
Header("Content-Type: image/jpeg");
$im = @imagecreatefromjpeg($user_pic); 
ImageJPEG($im);
}
else
{
Header("Content-Type: image/gif");
$im = @imagecreatefromgif($user_pic); 
ImageGIF($im);
}
```

och för att hämta en bild skriver jag \<img src="http://www.doman.com/bild.php?picture=4"\>

Permalänk: https://www.webforum.nu/p/1230341

## #7 — Webslave, 2003-12-17T20:25Z

Ovanstående hjälper ju inte om någon får reda på direktlänk till filerna av någon som är inloggad... dock borde ju sabbacus alternativ fungera.. dock så ska det vara segt att lägga in filer i db'n...

Permalänk: https://www.webforum.nu/p/1230612

## #8 — mhedda, 2003-12-17T22:22Z

Så det är inte så lätt att skydda bilder.
Finns det inget smidigt sätt att använda befintlig session till att neka åtkomsten till bildmappen om inte session finns??
Jag tror nämligen inte det går att lägga in filerna i ms-sql som jag använder.
Någon som har en smidig lösning på detta problem.

MVH

Permalänk: https://www.webforum.nu/p/1230700

## #9 — Matte, 2003-12-17T22:57Z

Som sabbacus föreslår, lägg dina biler i en katalog utanför webbroten, eller om du inte har tillgång till det i en katalog med ett namn som är väldigt svårt att prova sig fram till.

Sedan sparar du bildnamn och mime-typ i databasen (det senare om inte alla är JPEG).

Sen bygger du upp länkar till bilderna typ

```
<img src="visabild.php?id=42">
```

 

I skriptet visabild.php lägger du först en inloggningskontroll och sedan kan du göra något på det här hållet

```php
$path = 'sökväg_till_bilderna';

$sql = "SELECT bildnamn, mimetyp FROM tabell WHERE id=".intval($_GET['id']);
$result = mysql_query($sql);

if (mysql_num_rows($result) > 0) {

   $row = mysql_fetch_assoc($result);

   header("Content-type: ".$row['mimetyp']);
   header("Content-Disposition: inline; filename=".$row['bildnamn']);

   $fp = fopen($path.'/'.$row['bildnamn'], "rb");
   fpassthru($fp);

}

exit;
```

Permalänk: https://www.webforum.nu/p/1230734

## #10 — mhedda, 2003-12-17T23:56Z

Tackar för svaren jag ska testa imorgon..
MVH

Permalänk: https://www.webforum.nu/p/1230782

---

Tråden på webben: https://www.webforum.nu/amne/php/92787-bildkoll
