Domanda

Come è possibile consentire a uno script PHP di scrivere su un file con restrizioni di sicurezza elevate, ad esempio consentire a un solo utente di scrivervi?

La difficoltà sembra essere che uno script PHP viene eseguito come utente con permessi limitati (forse apache, o www, o nessuno?), e anche se io chown apache the_writable_file, la directory in cui si trova potrebbe non essere scrivibile per l'utente di basso livello.In generale, qual è il modo usuale in cui PHP può funzionare con i file locali in modo sicuro?

È stato utile?

Soluzione

Sfortunatamente, negli host condivisi che utilizzano mod_php, non c'è modo di limitare l'accesso per proteggere i file sulla tua app Web e accedere all'utente.

La soluzione è esegui la tua app Web come utente di accesso.Quando lo fai, i permessi dei file UNIX possono bloccare correttamente tutti gli altri.Esistono diversi modi per implementarlo, incluso SuExec, suPHP, o eseguire PHP con FastCGI con mod_fcgid O mod_proxy_fcgid.FastCGI è il mio metodo preferito.

Un'altra soluzione è utilizzare un host dedicato o un server privato virtuale.

Altri suggerimenti

Sicuro, chgrp apache the_writable_file E chmod g+w the_writable_file.Successivamente, solo l'utente protetto e l'utente Apache potranno scrivere sul file.Poiché all'utente Apache in genere è vietato accedere, devi solo preoccuparti che gli utenti Web scrivano sul tuo file protetto utilizzando il demone http.

Tutte le cartelle contenenti devono avere autorizzazioni di esecuzione.

Ad esempio, se il file è in /foo/bar/the_writable_file, le directory "foo" e "bar" devono entrambe avere l'autorizzazione eseguibile per accedere a the_writable_file, anche se non dispongono dell'autorizzazione di lettura/scrittura.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top