Dateien sollen nicht ueber den direkten Pfad aufrufbar sein...

A

aeson

Foren As
Hallo,

meine Frage ist ein wenig schwierig zu erklären, deswegen weiß ich auch leider nicht genau, wonach ich bei google suchen soll...

Ich möchte verhinden das Dateien über den direkten Pfad des Webservers aufgerufen werden können.

Beispiel:
http://IP-Adresse/username/images/beispiel.jpg

Ich habe bisher leider nur hinbekommen, dass ein Dirlisting des "Index of Username" verhindert wird. Das ich ein direktes Aufrufen einer Datei über den Pfad verhindern möchte, hängt damit zusammen, das ich das Ausspionieren meiner Dateien verhindern will.

Wäre nett, wenn mir einer von euch sagen könnte, wie sich die Option nennt, die ich eigentlich suche. Ich nehme an es handelt sich hierbei um eine Einstellung beim apache.

Danke schon mal im vorraus...
gruß aeson
 
Zuletzt bearbeitet:
Das geht eigentlich über die .htaccess mit der kannst du festlegen wer im Verzeichnis wo hin darf. Alternativ gäbs noch die Möglichkeit Apache im chroot laufen zu lassen, aber das ist ziemlich umständlich.
 
Gehen wir mal davon aus ich würde das mit .htaccess machen... Auf welche Fehlermeldung würden die User stoßen, wenn sie dann versuchen eine der Dateien aufzurufen, die durch .htaccess geschützt ist?
 
Das kannst du ja selber einstellen, aber generell 403 - Forbidden (afaik so ausm Gedächtnis) - du kannst aber auch "still" auf ne andere Seite weiterleiten.
 
OK danke für die Antworten und die Seite sowie die Stichwörter... ich denke damit kann ich was anfangen, hab aber heute leider keine Zeit mehr... Ich werde mich melden wenn ich mein Problem gelöst habe :)

gruß aeson
 
Ich bräuchte nocheinmal eure Hilfe...

also ich habe jetzt in dem Verzeichniss, indem ich die Dateien schützen möchte eine .htaccess Datei mit folgendem Inhalt erstellt...

RewriteEngine on
RewriteRule ^([0-9A-za-z]*)$ [forbidden]

Leider funktioniert es nicht wie geplant und ich gehe davon aus, dass ich einfach in der RewriteRule etwas falsch gemacht habe...

Hinweis: mod_rewrite ist bei apache2 aktiviert.

gruß aeson
 
Rootserver? Hosted WebserveR? Managed Webserver?
Eigentlich sollte auf den Einsatz von .htaccess Dateien aus diversen Gründe verzichtet werden.
 
Hallo saeckereier,

es handelt sich um einen Didicated Root Server, wieso würdst du auf .htaccess Dateien verzichten? In vielen Boards wird .htaccess sehr empfohlen...

gruß aeson
 
Das wuerde mich ja auch interessieren, warum man auf htaccess verzichten soll. Aber abgesehen davon koennte man das ganze zur Not auch ueber Rewrite-Regeln machen, so dass der User immer auf der Startseite landet.
 
Hallo,

ich habe mein Problem jetzt gelöst und habe so ziemlich das erreicht was ich wollte...

Wenn jetzt eine Datei, sei es jpg, php oder cgi über den direkten Pfad aufgerufen wird, bekommt derjenige in jedem Fall einen 403 Forbidden :D

Ich habe folgendes in der default vom apache2 ergänzt (Pfad: /etc/apache2/sites-available/default)

<Directory />
Deny from all
Allow from "IP-Adresse"
</Directory>

Ich danke euch allen nocheinmal für die Antworten... aber warum auf .htaccess verzichtet werden sollte würde mich dennoch interessieren.

gruß aeson
 
Hat diverse Gründe. Zwei, die wichtigsten, nenne ich hier einmal:
1. Alles was in einer htaccess Datei stehen kann, kann auch in der httpd.conf oder der jeweiligen vhost Datei konfiguriert werden (vhost Datei ist meistens ein Konstrukt bei dem ale /etc/apache2/vhost.d/*.conf Dateien includiert werden). Die Server Konfiguration gehört normalerweise root und ist für Apache nicht schreibbar. Damit wird sichergestellt, dass bei einer Sicherheitslücke im Apache ein Angreifer den Server nicht wild umkonfigurieren kann. (Sollten deine Dateien www gehören, solltest du dir das reiflich überlegen und ggf. ändern!) Wenn .htaccess Dateien an sind kann ein Angreifer da sehr böses mit machen. Beispielsweise mit aliasen auf beliebige Dateien, z. B. Sessioninfos zugreifen.
2. Die Performance. Wenn .htaccess aktiviert ist, muss der Server sie auf jeder Ebene suchen, bei langen Serverpfaden also mehrmals und kann die Info nicht cachen. Also auch noch bei jedem Request muss gelesen werden. Daher sind diese Dateien nicht zu empfehlen und sollten nur eingesetzt werden, wenn nicht ander möglich. Typisch sind da zum Beispiel reine Webhosting Angebote, in denen der Anwender die Konfig gar nicht anfassen soll.
 
Hat diverse Gründe. Zwei, die wichtigsten, nenne ich hier einmal:
1. Alles was in einer htaccess Datei stehen kann, kann auch in der httpd.conf oder der jeweiligen vhost Datei konfiguriert werden (vhost Datei ist meistens ein Konstrukt bei dem ale /etc/apache2/vhost.d/*.conf Dateien includiert werden). Die Server Konfiguration gehört normalerweise root und ist für Apache nicht schreibbar. Damit wird sichergestellt, dass bei einer Sicherheitslücke im Apache ein Angreifer den Server nicht wild umkonfigurieren kann. (Sollten deine Dateien www gehören, solltest du dir das reiflich überlegen und ggf. ändern!) Wenn .htaccess Dateien an sind kann ein Angreifer da sehr böses mit machen. Beispielsweise mit aliasen auf beliebige Dateien, z. B. Sessioninfos zugreifen.
Auch eine htaccess-Datei kann root gehören und für den Server nicht schreibbar sein. Das Argument ist allein deswegen also schonmal nichtig. Ausserdem sollten die Session-Dateien bei einem ordentlich konfigurierten Webserver ausserhalb des DocumentRoot des Virtual Hosts liegen.
2. Die Performance. Wenn .htaccess aktiviert ist, muss der Server sie auf jeder Ebene suchen, bei langen Serverpfaden also mehrmals und kann die Info nicht cachen. Also auch noch bei jedem Request muss gelesen werden. Daher sind diese Dateien nicht zu empfehlen und sollten nur eingesetzt werden, wenn nicht ander möglich. Typisch sind da zum Beispiel reine Webhosting Angebote, in denen der Anwender die Konfig gar nicht anfassen soll.

Es ist problemlos möglich Infos zu cachen, die über htaccess kommen. Wir nutzen htaccess bei blog.de sehr ausgiebig um die Subdomains für die User zu ermöglichen ohne daß wir ständig an die VHosts müssen. Und da bei uns 80% der Zugriffe über den Memcache-Server laufen, soll mir bitte niemand erzählen dass Infos, die in einer htaccess stehen nicht cachebar sind. Man kann problemlos z.B. über PHP mit Hilfe der memcache-Erweiterung definieren was gecachet wird und was nicht.

So, und nun stellt sich mir die Frage, ob du auch noch richtige Argumente gegen htaccess hast. ;)
 
Auch eine htaccess-Datei kann root gehören und für den Server nicht schreibbar sein. Das Argument ist allein deswegen also schonmal nichtig. Ausserdem sollten die Session-Dateien bei einem ordentlich konfigurierten Webserver ausserhalb des DocumentRoot des Virtual Hosts liegen.
Korrekt, sie sollten ausserhalb liegen. Trotzdem kann das in einer .htaccess überschrieben werden, natürlich lässt sich diese Möglichkeit per Konfig deaktivieren, aber wozu das Risiko bei einem eigenen Server eingehen. Dateiberechtigungen innerhalb der DocumentRoots sind so eine Sache, erfahrungsgemäß kann man da schonmal aus Versehen den Owner ändern. Natürlich ist es möglich dass fehlerfrei zu konfigurieren, aber man sollte wenn möglich und nicht wesentlich aufwändiger doch jede Möglichkeit nutzen kein Potenzial zu schaffen oder? Nebenbei ergeben sich daraus weitere Konsequenzen die man im auge behalten muss, wenn meine Datei zum Beispiel in einem Ordner der dem www gehört liegt, kann der die Datei einfach löschen und durch eine durch ihn schreibbare ersetzen..
Es ist problemlos möglich Infos zu cachen, die über htaccess kommen. Wir nutzen htaccess bei blog.de sehr ausgiebig um die Subdomains für die User zu ermöglichen ohne daß wir ständig an die VHosts müssen. Und da bei uns 80% der Zugriffe über den Memcache-Server laufen, soll mir bitte niemand erzählen dass Infos, die in einer htaccess stehen nicht cachebar sind. Man kann problemlos z.B. über PHP mit Hilfe der memcache-Erweiterung definieren was gecachet wird und was nicht.
Mir stellt sich die Frage ob der OP memcache (mir leider unbekannt, werds mal anschauen) einsetzt und wie memcache dann mitbekommt ob die Datei geändert wurde? Ich glaube auch nicht dass das letztendlich der entscheidende Grund ist, allerdings habe ich das vielzitiert gelesen und wenn ich mich richtig erinnere auch auf apache.org Seiten. Ein letzter Punkt ist eher persönlicher Natur, ich habe gerne alle nötigen Konfigs an einem Ort, in meiner Serverconfig und nicht in .htaccess Dateien, dann muss ich mir bei der Fehlersuche keine Gedanken machen, was in welchem Ordner evtl. überschrieben wurde.
So, und nun stellt sich mir die Frage, ob du auch noch richtige Argumente gegen htaccess hast. ;)
Ich denke nicht, dass du meine Argumente komplett wiederlegt hattest, auch schon die ersten nicht. Ich will aber auch nicht sagen, dass .htaccess Files keine Daseinsberechtigung haben bzw. dass meine Gründe absolute Killerargumente seien. Ich denke nur, sie sind durchaus eine Überlegung wert. Letztendlich hängt es auch noch mit vom persönlichen gusto ab.
 
Das Sicherheitsproblem, das du ansprichst, kann ich in keiner Weise nachvollziehen. Kein einigermaßen fähiger Admin wird htaccess-Dateien durch den Webserver-User schreibbar machen und aus Versehen sollte auf einem Server garnichts passieren. Idealerweise sind sie sogar auf a-w gesetzt.

Deine persönlichen Vorlieben in allen Ehren, aber diese als Argument gegen htaccess heranzuziehen ist doch etwas sehr weit hergeholt.
 
Meine persönliche Vorliebe war eine Ergänzung.
 
Geht das denn allgemein überhaupt?
Wie sollte denn dann der Browser zu hause an die .jpg Datei herankommen wenn die per htacces gesperrt ist? Also wenn du die für eine Internet Seite gebrauchen willst wird das nicht gehen, halt nur als so eine Art "File-Server"...
 
Nehme mal an, dass wird über ein PHP Skript o.ä. umgelenkt. Die Regel verbietet dass jemand die Datei runterlädt. Ein PHP SKript kann die aber auslesen von der Platte und an den Client ausliefern.
 
Das müßte dann aber schon ein sehr unfähiger Webentwickler sein, wenn der die Übergabe von Datei- oder Ordner-Angaben zuläßt und so einem Angreifer Tür und Tor öffnet. Im Normalfall übergibt man Dateinamen in Form eines Index, über den dann der Dateiname aufgelöst wird. Aber klar, man muss durchaus mit der menschlichen Dummheit und Fehlern rechnen, nur halt nicht, wenn man selbst den Server verwaltet und die Webapplikationen selbst schreibt. Geht man aber davon aus, dürfte es garkeine Server geben und htaccess wäre genauso Unfug wie jeder andere Sperrmechanismus auch, denn durch Fehler kann man die zu 90% davon umgehen und da macht es keinen Unterschied, ob ich da nun eine htaccess oder VirtualHost-Einstellungen nutze. PHP kann nämlich den Webserver komplett umgehen um an Dateien ranzukommen indem einfach über das Dateisystem drauf zugegriffen wird. Es ist also eher ein Argument gegen PHP und andere Skriptsprachen (oder anders gesagt... gegen dynamische Webapplikationen) und nicht gegen htaccess.
 

Ähnliche Themen

Mehrere Verbindungen bei einem Dateiupload?

Konfiguration für mehrere Domains lokal nachbilden

Zurück
Oben