Mijn website heeft de volgende structuur:
Nu wil ik met .htaccess het volgende bereiken:
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?
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)
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."