# Ordner mit htaccess schützen



## Denniz (2. Februar 2009)

Hi Leute,

ich habe zb folgende Ordnerstruktur:

```
http://site.de/projekt/files/
```

In dem Order "files" liegen mehrer dateien (jpg, txt, pdf, etc) welche mir über 

```
http://site.de/projekt/index.php
```
 angezeigt werden und die  man von dort aus relativ aufrufen kann.

Wie kann ich den ordner "files" nun so absichern das ein Aufruf über die adressleiste zu den dateien zB. über

```
http://site.de/projekt/files/meinPDF.pdf
```
nicht möglich ist und man bei der eingabe auf eine html umgeleitet wird?
Muß doch irgendwie mit  .htaccess gehen.


----------



## pHyro (2. Februar 2009)

Huhu,

du könntest per Referer prüfen ob der Besucher von 
	
	
	



```
http://site.de/projekt/index.php
```
 kommt. (Nur als kleine Anregung )

Lg

Edith hat noch ein Link gefunden 

http://www.strassenprogrammierer.de/apache-unerw%FCnschte-referer-stoppen_tipp_441.html Im Prinzip müsstest du es nur so umschreiben, dass alle, die nicht von der gewüschten Seite kommen zu der Seite weitergeleitet werden, die du möchtest.


----------



## Denniz (2. Februar 2009)

Ich kenn referer jetzt nur im  zusammenhang mit php.
Geht das auch mit htaccess, wenn ja wie?

Der php referer hilft mir ja nicht weiter weil ich so ja trotzdem über die adressleiste auf die files komme, genau das will ich ja verhindern  

Sry, der link ist nicht das wonach ich suche.
In http://site.de/projekt/index.php stehen die links zu den dateien aus dem files ordner, nur hierrüber darf man die dateien aufrufen.
Ein direkter aufruf über http://site.de/projekt/files/bild.jpg soll unterdrückt werden.


----------



## pHyro (2. Februar 2009)

Den Referer hast du in der Umgebungsvariablen %{HTTP_REFERER}:


```
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://site.de/whk2010/index.php
RewriteRule .* http://www.google.de [R,L]
```

Dafür muss natürlich das Modul mod_rewrite auf dem Webserver installiert sein.
Das wird dann in eine .htaccess gepackt, und die in den Ordner, der so gesperrt werden soll 

Lg


----------



## Denniz (2. Februar 2009)

Besten Dank schonmal, die htaccess funktioniert.

Gibt es evtl. eine möglichkeit die htaccess nicht direkt in den zu schützenden ordner zu legen sondern eine ordnerstufe höher anzulegen?
Momentan liegt die htaccess im file ordner und schützt diesen:


```
http://site.de/projekt/files/
```


```
RewriteEngine On
RewriteCond %{HTTP_REFERER} !^http://site.de/projekt/index.php
RewriteRule .* http://www.google.de [R,L]
```

In meinem Fall wäre es gut wenn die htaccess  zB im projekte ordner liegen würde und von dort aus den files ordner (und alle weiteren unterordner) schützt.


----------



## Sven Mintel (3. Februar 2009)

Moin,

da es noch nicht erwähnt wurde, möchte ich das nachholen :-(

Es erfordert keine allzugrossen Fertigkeiten, den REFERER zu Fälschen, was du bedenken solltest.

Wenn es also absolut wichtig ist, den Zugriff auf anderem Wege zu Verhindern, musst du dich von dieser Lösung verabschieden 

Der REFERER kommt vom Clienten, und wie alles, was vom Clienten kommt, ist er halt nicht vertrauenswürdig.


----------



## Denniz (3. Februar 2009)

Ok, aber was ist schon 100% sicher?!  
Die Referermethode klingt pausibel aber welche möglichkeiten gibt's noch den Ordner abzusichern?


----------



## pHyro (3. Februar 2009)

Hiho,

in der 
	
	
	



```
http://site.de/projekt/index.php
```
 eine Session starten, per htaccess alle Zugriffe auf die Dateien im Ordner 
	
	
	



```
http://site.de/projekt/files/
```
 auf 
	
	
	



```
http://site.de/projekt/files/index.php?file=datei.jpg
```
 umleiten und dann in der Datei 
	
	
	



```
http://site.de/projekt/files/index.php
```
 prüfen ob die Session existiert. Wenn ja, die Datei ausgeben, wenn nein, andere Seite aufrufen  
(Hoffe das war einigermaßen verständlich formuliert, war nur ein schneller Gedankengang )

Lg


----------

