[Apache] Toegang tot mappen en bestanden regelen in .htacces

Pagina: 1
Acties:

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Mijn website heeft de volgende structuur:
code:
1
2
3
4
5
6
7
8
9
10
/
  /modules
    /module_a (met daarin *.module, *.js, *.php en *.html bestanden)
    /module_b (idem)
  /includes   (met daarin *.inc en *.php bestanden)
  /system     (met daarin bestanden met allerlei extensies)
    /icons
    /scripts
  /files      (met daarin door users geuploade bestanden)
  /images

Nu wil ik met .htaccess het volgende bereiken:
  • directory listing voor /modules, /includes, /system en /images ontzeggen
  • client moet wel bestanden als /modules/module_a/script.js kunnen benaderen
  • expliciet verbieden om *.module, *.inc en *.php bestanden te kunnen downloaden
  • de toegang tot /files volledig ontzeggen (als client bv. files/document.doc wil downloaden wil ik eerst op rechten controleren en het bestanden met php naar de client streamen)
Ik heb hiervoor de volgende .htaccess geschreven:
code:
1
2
3
4
5
6
7
<Files ~ "(\.(inc|module|php)|modules|includes|system|files|images)">
  order allow,deny
  deny from all
</Files>

Options -Indexes
Options FollowSymLinks

Voor zover ik kan nagaan bereik ik hiermee de eerste 3 doelstellingen, maar niet de derde. Ik weet alleen hoe ik een directory listing kan tegengaan, maar als ik een bestaande url naar een document intik, download ik hem nog steeds.

Hoe kan ik de volledige toegang tot /files ontzeggen?

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Een .htaccess in die map aanmaken met de volgende inhoud:
Order allow,deny
Dan kom je er via HTTP niet meer in.

Sole survivor of the Chicxulub asteroid impact.


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
AtleX schreef op zondag 22 juni 2008 @ 11:53:
Een .htaccess in die map aanmaken met de volgende inhoud:

[...]

Dan kom je er via HTTP niet meer in.
De .htaccess. uit de TS staat in de website-root (/). Kan ik niet in die .htaccess de toegang tot /files ontzeggen? Ik wil graag alles in de .htaccess in de root regelen...

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Dan zul je met een <Directory> tag moeten werken denk ik.

Sole survivor of the Chicxulub asteroid impact.


  • GX
  • Registratie: Augustus 2000
  • Laatst online: 14-05-2025

GX

Nee.

Eigenlijk vind ik het gebruik van *.inc bestanden sowieso een beetje dubieus, noem ze gewoon .inc.php, dan heb je direct het volgende opgelost:

een .php bestand wordt altijd geparsed door de server; "Downloaden", kan dan ook niet. Als je een beetje een goed doordacht structuur hebt, komt er ook geen (bruikbare) output uit die bestanden. Daarmaa is de noodzaak om het downloaden te 'verbieden' ook direct weg.

  • RobIII
  • Registratie: December 2001
  • Niet online

RobIII

Admin Devschuur®

^ Romeinse Ⅲ ja!

(overleden)

There are only two hard problems in distributed systems: 2. Exactly-once delivery 1. Guaranteed order of messages 2. Exactly-once delivery.

Je eigen tweaker.me redirect

Over mij


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Ik gebruik altijd een structuur waarbij de non-www/ directory alle bestanden bevat die niet via HTTP opvraagbaar moeten zijn, zoals PHP files, configuratiebestanden, etc. De toegang tot deze map blokkeer ik ook via .htaccess, want als door een Apache update of configuratiefout ineens mijn PHP bestanden niet meer geparsed worden liggen mijn gevoelige gegevens iig niet op straat.

Sole survivor of the Chicxulub asteroid impact.


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
AtleX schreef op zondag 22 juni 2008 @ 13:06:
Ik gebruik altijd een structuur waarbij de non-www/ directory alle bestanden bevat die niet via HTTP opvraagbaar moeten zijn, zoals PHP files, configuratiebestanden, etc. De toegang tot deze map blokkeer ik ook via .htaccess, want als door een Apache update of configuratiefout ineens mijn PHP bestanden niet meer geparsed worden liggen mijn gevoelige gegevens iig niet op straat.
Dat is opzich een goede tip, en ik ga daar ook over nadenken. Maar dan wil ik nog steeds graag weten hoe ik mijn probleem kan oplossen :)

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • AtleX
  • Registratie: Maart 2003
  • Niet online

AtleX

Tyrannosaurus Lex 🦖

Met mod_rewrite kan het sowieso, gewoon alle aanroepen naar die directory of een file erin redirecten naar een 403 afvangpagina. Wil je het zonder mod_rewrite doen dan moet je denk ik, zoals ik al eerder zei, een <Directory> tag opnemen in je .htaccess en daarin de code zetten die ik in mijn eerste reactie heb geplaatst. :)

Sole survivor of the Chicxulub asteroid impact.


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Toen ik het volgende aan .htaccess toevoegde, kreeg ik een server error terug:
code:
1
2
3
4
<Directory /files/>
  order allow,deny
  deny from all
</Directory>

Op http://httpd.apache.org/docs/1.3/mod/core.html#files vond ik:
"Note that unlike <Directory> and <Location> sections, <Files> sections can be used inside .htaccess files."
Ik heb geen toegang tot httpd.conf, alleen tot de .htaccess in de root van mijn webdirectory (c:/apache/htdocs/reveller/ bij mij thuis en /home/reveller/public_html/ online). Vandaar dat ik een oplossing met <Files> nodig heb...als die er is :)

Heeft iemand nog een suggestie?

[ Voor 16% gewijzigd door Reveller op 22-06-2008 18:00 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."


  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
* kick *

zie ^^

iemand?

[ Voor 20% gewijzigd door Reveller op 23-06-2008 20:35 ]

"Real software engineers work from 9 to 5, because that is the way the job is described in the formal spec. Working late would feel like using an undocumented external procedure."

Pagina: 1