Ho uno script php che deve connettersi a un database. Le credenziali per il database sono memorizzate in un altro script php.Autorizzazioni Unix, read vs. execute (contesto PHP)
Se si impostano le autorizzazioni per il file delle credenziali su 661 in modo che Pubblico disponga dell'autorizzazione di esecuzione ma non dell'autorizzazione di lettura, questo consente allo script principale di accedere alle credenziali e connettersi al DB impedendo a qualcuno con un account utente sul server dalla visualizzazione del contenuto del file delle credenziali?
Immagino di essere confuso sulla distinzione tra lettura ed esecuzione. Uno script php (che funziona come www o qualcosa di simile) ha bisogno del permesso di lettura per includere un altro script php e utilizzare qualsiasi contenuto all'interno? O ha solo bisogno di essere eseguito? Il permesso di lettura fornisce implicitamente il permesso di esecuzione?
Sub-Question: Se imposto che tutti i miei script abbiano solo il permesso di esecuzione e non vengano letti, ci sono delle insidie che dovrei aspettarmi? Ciò presuppone che lascerò qualsiasi file che ho bisogno dell'autorizzazione di lettura esplicita (file di dati) impostato per la lettura.
Nota che se altri utenti hanno accesso per eseguire il proprio codice PHP attraverso il server web, questo non li fermerà. In tal caso, guarda a open_basedir o a una soluzione che ti consente di eseguire diversi vhost/app come utenti diversi. – oops
Sì, a un esame più attento, ho scoperto che www era un membro del gruppo per la directory su cui stavo basando la mia confusione. Non stavo cercando di hackerarlo, volevo solo emulare ciò che avevano fatto, ma senza semplicemente rispecchiarlo. – Anthony