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

Home ~ Php :: PHP.INI e il setaggio del Safe Mode :: Indice Php

PHP.INI e il setaggio del Safe Mode

Categoria: Php Inserito il: 10-07-2006 Stampa (6881 click)

Il discorso riguardante il Safe Mode è abbastanza complesso, per chi non volesse addentrarsi troppo nell'argomento, diremo subito che esiste una semplice regola generale che consiglia di settare la direttiva corrispondente in On; lo stesso destino toccherà più o meno a tutte le altre direttive correlate a questa voce di cui parleremo tra poco.

Per render il concetto in modo semplice, diremo che la direttiva safe_mode è stata introdotta per risolvere le problematiche legate alla gestione dei permessi sulle risorse.

L'attivazione di questa direttiva comporta alcune limitazioni: innanzitutto l'interprete di PHP andrà a verificare ogni volta l'User ID del file che viene eseguito e simulerà l'utente corrispondente attuando un'azione detta wrapping.

In secondo luogo, le funzioni per la manipolazione dei file (come ad esempio copy() o unlink()) non potranno estendere la loro azione su risorse appartenenti a proprietari differenti da quello dell'applicazione che s'intende eseguire.

Terzo, i costrutti include() e require() risentiranno delle stesse limitazioni indicate per le precedenti funzioni tranne che per le risorse contenute nella directory indicata dalla direttiva safe_mode_include_dir.

Inoltre, le chiamate di sistema operate tramite le funzioni exec() (esegue un programma esterno), system() (esegue un programma esterno e ne mostra l'output) e passthru() (esegue un programma esterno e ne mostra l'output non elaborato, raw), non potranno coinvolgere eseguibili diversi da quelli inseriti nella cartella indicata dalla direttiva safe_mode_exec_dir.

Infine, non si potrannoi utilizzare: l'operatore backtick (``) omologo della funzione shell_exec() (esegue un comando tramite la Shell e restituisce un output completo sotto forma di stringa) anch'essa inutilizzabile; la funzione set_time_limit() (limita il tempo massimo in secondi di un'esecuzione); dl() (carica i moduli di PHP a runtime).

E' possibile rendere un pò meno drastiche le limitazioni dovute all'abilitazione della direttiva safe_mode agendo su un'altra voce del file di configurazione PHP.INI, abilitando cioè la voce safe_mode_gid; in questo modo i controlli sulle identità degli owner avvengono a carico del group di riferimento.

Attenzione: questo articolo è stato concesso in esclusiva per la pubblicazione a Mrwebmaster.it; ne è vietata la riproduzione,
anche parziale, senza l'esplicito consenso dell'autore e della redazione di Mrwebmaster.it.

Cerca nel sito
Per sito
Sviluppatore di applicazioni Web con competenze evolute nella progettazione delle basi di dati, autore per alcune delle più importanti testate on line dedicate alla manualistica tecnica (HTML.it, MrWebmaster.it, Edit) e consulente per l'e-learning.
Tutte le categorie
Tutorial Random
Accedere ad un sistema UNIX
Passeremo ora ad argomenti dai risvolti più pratici relativi alle sessioni di lavoro; sono però necessarie alcune avvertenze preliminari riguardanti... Leggi l'articolo
Corsi online per sviluppatori
Corsi per Webmaster, Web Designer, Programmatori, Grafici e Sistemisti