[PHP/Apache] Bestanden beperkte toegang geven binnen webroot

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Binnen mijn cms'je sla ik beveiligde bestanden op in een folder buiten de webroot. Als een gebruiker zo'n bestand wil downloaden, check ik zijn rechten en haal het bestand op met fread en push deze naar de client.

Ik heb voor een locatie buiten de webroot gekozen, omdat bestanden binnen de webroot te downloaden zijn via mijnsite.com/folder_binnen_webroot/document.ext. Nu vraag ik mij af: is het ook mogelijk om deze bestanden in een folder binnen de webroot op te slaan, maar toch te beveiligen? Dus: als iemand surft naar een bestand in de folder mijnsite.com/folder_binnen_webroot/ krijgt hij een (Apache-)error, maar met de juiste rechten wordt het bestand gewoon gedownload.

Is dit te doen met correcte settings in .htaccess?

"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."


Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
Jup;
code:
1
2
Order Allow,Deny
Deny from all


Zelf plaats ik altijd een rewrite-rule in die htaccess die alle requests via een PHPtje verwerkt waarni ik de rechten kan checken, en kan voorkomen dat bijvoorbeeld een php-bestand wordt uitgevoerd.
De publieke URL blijft dan dus gewoon /map/bestand.ext maar deze wordt intern geredirect via /map/download.php welke hem pushed zoals je zelf al omschreef.
code:
1
2
RewriteEngine On
RewriteRule (.*) download.php?file=$1 [L]

[ Voor 92% gewijzigd door frickY op 09-06-2008 12:21 ]


Acties:
  • 0 Henk 'm!

  • Reveller
  • Registratie: Augustus 2002
  • Laatst online: 05-12-2022
Ik heb nu het volgende:
code:
1
2
3
4
<Files ~ "(\.(inc|module|sql)|system|files)$">
  order allow,deny
  deny from all
</Files>

Ik wil dus
  • voorkomen dat bestanden met *.inc, *.module of *.sql gedownload kunnen worden, ongeacht de settings van de directory waar ze inzitten
  • de toegang tot de system en files directories ontzeggen
Als ik naar site.com/files surf, krijg ik geen toegang, zoals verwacht. Maar als ik naar site.com/files/document.ext surf, kan ik hem gewoon downloaden.

Wie kan mij vertellen wat ik verkeerd doe? Is de hele opzet verkeerd of moet ik slechts iets aanpassen?

"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."


Acties:
  • 0 Henk 'm!

  • DataGhost
  • Registratie: Augustus 2003
  • Laatst online: 19-09 21:26

DataGhost

iPL dev

Nogal logisch, gezien het dollarteken aan het einde van je regex.

Acties:
  • 0 Henk 'm!

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 18-09 14:42
En de punt die er voor staat, terwijl je mappen niet met een punt beginnen