Consentire l'accesso ai file da una pagina specifica con .htaccess

14/08/2012

Ipotizziamo che abbiate creato un'area riservata a cui possano accedere soltanto i vostri clienti, per quanto riguarda le pagine la protezione dovrebbe essere garantita dalle sessioni risolvendo il problema degli accessi indesiderati; ma come fare nel caso in cui si voglia consentire unicamente agli utenti loggati di visualizzare i file contenuti all'interno di una cartella? Una soluzione potrebbe essere quella di autorizzare il download soltanto da una pagina specifica.

Immaginiamo quindi di avere all'interno della nostra area riservata un file protetto da sessioni, denominato per esempio "utente.php", e di volerlo definire come unica porta d'accesso ai documenti disponibili tramite autenticazione; per far questo sarà possibile creare un semplice ".htaccess" destinato a contenere le seguenti istruzioni da inviare al Web server:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !(www.)?sito.it/area_riservata/utente.php
RewriteRule .* - [F]

In questo modo, tutte le richieste non provenienti dal REFERER HTTP passato come argomento verranno rifiutate; naturalmente sarà possibile definire più URL per l'accesso ai file nel caso se ne presenti l'esigenza:

RewriteEngine On
RewriteCond %{HTTP_REFERER} !(www.)?sito.it/area_riservata/utente.php
RewriteCond %{HTTP_REFERER} !(www.)?sito.it/admin/gestione_file.php
RewriteRule .* - [F]

Entrambe le URL saranno autorizzate anche nel caso vengano passati attraverso di esse dei parametri in querystring.

© Claudiogarau.it :: Tutorials & Scripts, PHP, Linux and more.

Stampa :: Torna alla Home