Zugriff auf bestimmte Dateien erlauben
-
- Posts: 218
- Joined: 2004-09-15 10:14
Zugriff auf bestimmte Dateien erlauben
Hallo zusammen,
mein Problem ist folgendes.
Ich möchte Über .htaccess oder Konfiguration meines Apache 2.2 den Zugriff nur auf bestimmte Dateien erlauben. Z.B. index.php, main.php und *.jpg.
Hätte da jemand einen Hinweis für mich? Alles was ich in der reichlich vorhanden Dokumentation gefunden habe, ist die umgekehrte Version, bei der ich bestimmte Dateien ausschließen kann.
Danke schonmal.
Cheers,
Jochen
mein Problem ist folgendes.
Ich möchte Über .htaccess oder Konfiguration meines Apache 2.2 den Zugriff nur auf bestimmte Dateien erlauben. Z.B. index.php, main.php und *.jpg.
Hätte da jemand einen Hinweis für mich? Alles was ich in der reichlich vorhanden Dokumentation gefunden habe, ist die umgekehrte Version, bei der ich bestimmte Dateien ausschließen kann.
Danke schonmal.
Cheers,
Jochen
-
- Project Manager
- Posts: 11183
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: Zugriff auf bestimmte Dateien erlauben
Einzige Möglichkeit: Alle Files/Dirs die nicht von Apache verarbeitet werden sollen einer dedizierten User/Group-Kombination zuordnen und keine world-Rechte vergeben.
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
-
- Posts: 218
- Joined: 2004-09-15 10:14
Re: Zugriff auf bestimmte Dateien erlauben
Mhh, nicht so kompfortabel wie ich es mir erhofft hatte, aber immerhin eine Lösung.Joe User wrote:Einzige Möglichkeit: Alle Files/Dirs die nicht von Apache verarbeitet werden sollen einer dedizierten User/Group-Kombination zuordnen und keine world-Rechte vergeben.
Vielen Dank.
-
- Posts: 150
- Joined: 2004-12-15 16:48
Re: Zugriff auf bestimmte Dateien erlauben
Sollte einem aber nicht schwerfallen so ein Beispiel anzupassen, oder?snowball wrote:Alles was ich in der reichlich vorhanden Dokumentation gefunden habe, ist die umgekehrte Version, bei der ich bestimmte Dateien ausschließen kann.
Zumindest müßtest Du in etwa in diese Richtung gehen (ungetestet):
Code: Select all
# cat .htaccess
Order Deny,Allow
Deny from All
<FilesMatch "^((main|index).php|.+.jpg)$">
Allow from All
</FilesMatch>
-
- Project Manager
- Posts: 11183
- Joined: 2003-02-27 01:00
- Location: Hamburg
Re: Zugriff auf bestimmte Dateien erlauben
Allerdings schmeisst Apache dann Error 403 statt 404 bei den verbotenen Files...dotme wrote:Zumindest müßtest Du in etwa in diese Richtung gehen (ungetestet):
PayPal.Me/JoeUser ● FreeBSD Remote Installation
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
Wings for Life ● Wings for Life World Run
„If there’s more than one possible outcome of a job or task, and one
of those outcomes will result in disaster or an undesirable consequence,
then somebody will do it that way.“ -- Edward Aloysius Murphy Jr.
-
- Posts: 218
- Joined: 2004-09-15 10:14
Re: Zugriff auf bestimmte Dateien erlauben
Doch, genau das ist mir schwer gefallen. Aber dein Bespiel funktioniert genau so, wie ich mir das gewünscht habe. Vielen Dank für Eure Hilfe.dotme wrote:Sollte einem aber nicht schwerfallen so ein Beispiel anzupassen, oder?
Cheers,
Jochen
-
- Posts: 36
- Joined: 2006-10-18 11:33
Re: Zugriff auf bestimmte Dateien erlauben
Macht das ganze eigentlich wirklich Sinn? Wirklich interessante Dateien wie /etc/passwd holt sich ein Angreifer ja eher über Löcher in PHP-Skripten.
-
- Posts: 218
- Joined: 2004-09-15 10:14
Re: Zugriff auf bestimmte Dateien erlauben
Für micht macht es schon Sinn.
Es geht mir nicht um das anzeigen von Systemdateien. Sondern um das verhindern von direktem Zugriff auf template Daten. Die templates werden von meinem PHP includet. sollen aber nicht direkt anzeigbar sein. Normalerweise verhinderer ich das direkte anzeigen auch durch php funktionen. Die .htaccess Datei sollte auch nur als zusäzlicher Schutz dienen.
Leider funtkoiniert sie nicht so wie ich das wollte. Mit der weiter oben beschriebenen Datei wird auch der Aufruf ohne index Datei verhindert.
z.B
http://www.domain.de/ <- geht nicht
http://www.domain.de <- geht nicht
http://www.domain.de/index.php <- geht
Lieder habe ich noch nicht rausgefunden woran es liegt.
Es geht mir nicht um das anzeigen von Systemdateien. Sondern um das verhindern von direktem Zugriff auf template Daten. Die templates werden von meinem PHP includet. sollen aber nicht direkt anzeigbar sein. Normalerweise verhinderer ich das direkte anzeigen auch durch php funktionen. Die .htaccess Datei sollte auch nur als zusäzlicher Schutz dienen.
Leider funtkoiniert sie nicht so wie ich das wollte. Mit der weiter oben beschriebenen Datei wird auch der Aufruf ohne index Datei verhindert.
z.B
http://www.domain.de/ <- geht nicht
http://www.domain.de <- geht nicht
http://www.domain.de/index.php <- geht
Lieder habe ich noch nicht rausgefunden woran es liegt.
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Zugriff auf bestimmte Dateien erlauben
Die FilesMatch Direktive von oben enthält keinen RegEx für "^$", also einen leeren String, wie es beim Aufruf ohne index.php vorkommt.snowball wrote:Lieder habe ich noch nicht rausgefunden woran es liegt.
Ein weiterer Ansatz wäre, alle Dateien, auf die nicht zugegriffen werden soll, in ein Verzeichnis zu packen und dieses mit "Deny from all" zu schützen. Aber eigentlich sollten solche Dateien erst gar nicht im DocumentRoot der Domain liegen. ;)
-
- Posts: 36
- Joined: 2006-10-18 11:33
Re: Zugriff auf bestimmte Dateien erlauben
Probiers mal damit? (nur ein pipe mehr)
Code: Select all
<FilesMatch "^((main|index).php|.+.jpg|)$">
-
- Posts: 218
- Joined: 2004-09-15 10:14
Re: Zugriff auf bestimmte Dateien erlauben
Danke für den Tipp, scheint aber auch nicht zu funktionieren.Roger Wilco wrote: Die FilesMatch Direktive von oben enthält keinen RegEx für "^$", also einen leeren String, wie es beim Aufruf ohne index.php vorkommt.
Code: Select all
Order Deny,Allow
Deny from All
<FilesMatch "^((main|index).php|.+.jpg|.+.png|.+.css|.+.pdf|^$)$">
Allow from All
</FilesMatch>
Führt zu "Internal Server Error" Fehler 500dante77 wrote:Probiers mal damit? (nur ein pipe mehr)
Code: Select all
<FilesMatch "^((main|index).php|.+.jpg|)$">
Regular Expressions ist einfach nicht meine Welt :(
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Zugriff auf bestimmte Dateien erlauben
Code: Select all
<FilesMatch "^((main|index).php|.+.(jpg|png|css|pdf))?$">
Allow from all
</FilesMatch>
-
- Posts: 218
- Joined: 2004-09-15 10:14
Re: Zugriff auf bestimmte Dateien erlauben
Nein, bei meinem Apache 1.3.37 leider nicht. Gleiches Problem wie vorher, auch wenn der Code besser aussiehtRoger Wilco wrote: Ungetestet, sollte aber funktionieren.
Da hast du natürlich recht. Aber den Aufwand möchte ich dafür nicht betreiben. Ich bin grade dabei, eine Webseite zu erstellen (Nur 'ne kleine für den Sportverein). Da ich aber noch keine Ahnung habe, ob ich die danach auch hosten werde, oder das jemand anderes übernimmt, versuche ich das ganze so einfach wie möglich zu hallten. Wenn ich bei der Übergabe der Seite auch noch eine Installationsanleitung für einen Webserver mitgeben muss, würde das den Rahmen sprengen.Roger Wilco wrote: Die Variante mit den Dateien außerhalb des DocumentRoots oder in einem eigenen Verzeichnis ist aber vorzuziehen, zumal du dann auch eine organisatorische Trennung auf Dateisystemebene hast.
-
- Posts: 36
- Joined: 2006-10-18 11:33
Re: Zugriff auf bestimmte Dateien erlauben
Sowohl Roger Wilcos als auch mein regulärer Ausdruck sind valide und matchen sowohl die Dateien als auch den leeren String. Aber offenbar führt es beim Apache zu einem Fehler, wenn ein leerer String gematcht wird (IMHO)
-
- Posts: 5923
- Joined: 2004-05-23 12:53
Re: Zugriff auf bestimmte Dateien erlauben
Die Templates liegen vermutlich schon in einem eigenen Verzeichnis, in das du einfach eine entsprechende .htaccess Datei packen kannst. Dazu sind keine Installationsanweisungen nötig.snowball wrote:Da hast du natürlich recht. Aber den Aufwand möchte ich dafür nicht betreiben.
-
- Posts: 218
- Joined: 2004-09-15 10:14
Re: Zugriff auf bestimmte Dateien erlauben
Mhh, hast recht. so hätte es mir zwar besser gefallen, aber das ist natürlich auch ne gute Lösung. Mache ich es halt so.Roger Wilco wrote:Die Templates liegen vermutlich schon in einem eigenen Verzeichnis, in das du einfach eine entsprechende .htaccess Datei packen kannst. Dazu sind keine Installationsanweisungen nötig.
Vielen Dank für den Denkanstoss.