Proteggere i file d'inclusione dall'accesso diretto

16/06/2012

Le richieste di assistenza nell'amministrazione del Web hosting non riguardanon quasi mai problematiche complesse, plausibilmente saranno veramente pochi i tickets riguardanti argomenti come il polimorfismo, l'ereditarietą multipla o la gestione dei namespaces; č invece molto probabile che gli utenti debbano superare semplici ostacoli come per esempio questioni inerenti la sicurezza delle inclusioni.

Un caso ricorrente č quello dei file contenenti gli headers, i footers o funzionalitą accessorie come per esempio widgets per i commenti o muduli form; per evitare ripetizioni questi ultimi sono contenuti in genere in file richiamati tramite include() o require(), la loro utilitą č dovuta essenzialmente al contesto di pagina, diversamente non dovrebbero essere accessibili direttamente.

Il codice seguente rappresenta un sistema abbastanza veloce per evitare l'accesso diretto ad un file denominato "sidebar.php" che per esempio potrebbe contenere un menł laterale:

<?php
if(@basename($_SERVER['PHP_SELF'])=='sidebar.php'){
@header("Location:index.php");
}
?>
La dinamica dello script si basa sulla funzione basename() che estrae il solo nome del file corrente dal percorso memorizzato nella variabile d'ambiente "$_SERVER['PHP_SELF']"; se il filename estratto č identico a quello del file per il quale non deve essere consentito l'accesso, allora header() produrrą un redirect verso la pagina passata come argomento a "Location".

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

Stampa :: Torna alla Home