PHP: i problemi di sicurezza legati alla funzione exec()

PHP: i problemi di sicurezza legati alla funzione exec()

Questa funzione PHP permette di eseguire comandi dalla shell.

exec(), come è noto, è una funzione che permette di eseguire comandi via shell. A differenza di shell_exec(), è disponibile anche in safe mode seppure con la limitazione nell'accesso al file system.

Di fatto questa funzione permette di eseguire qualsiasi comando disponibile per l'utente che esegue PHP. Se l'utente non è quello corrente ma un utente globale come Apache (ossia se Apache non esegue PHP come modulo CGI con SuExec), allora vi può essere un escalation di privilegi legata all'utenza.

Si può configurare la shell degli utenti in modo che possano eseguire solo alcuni comandi. Tuttavia se si usa Apache in modo globale, occorre anche limitare i privilegi di Apache.

Si tenga presente che comunque questa funzione può sempre manipolare il file system all'interno della directory home dell'utente, quindi per motivi di sicurezza andrebbe usata solo in quei rari casi in cui non esiste un'altra alternativa.

Documentazione

exec()

Torna su