Where to place PHP files for security?
Ricorda che non esiste il posto migliore dove archiviare i tuoi file in modo sicuro. La sicurezza dei tuoi file sensibili è solo il risultato di una combinazione di buone misure, come la prevenzione delle iniezioni di URL che potrebbero rivelare i tuoi file sensibili, che puoi prendere e discutere di seguito in breve.
My thought is it should follow the principle of least privilege, if
those files don't need to be public then they shouldn't be. Why is
this something that is not right at the start of PHP the right way?
La stessa domanda che potresti fare sul perché i firewall non sono raccomandati. Ma la risposta è perché l'articolo che hai scelto è destinato agli sviluppatori. Gli sviluppatori sono più preoccupati su come farlo funzionare di come renderlo sicuro . Guarda le sezioni discusse attraverso quell'articolo:
Introduzione (configurazione generale, versioni di PHP da scegliere ...), Guida allo stile del codice (Paradigmi di programmazione, Namespace, Libreria PHP standard, Xdebug ...), Gestione delle dipendenze, PEAR (installazione e così via), Procedure di codifica Iniezione delle dipendenze (un modello di progettazione software), Interagire con i database, Templatura ...
Come puoi intuire, questo è rivolto agli sviluppatori non a chi è preoccupato come te dagli aspetti di sicurezza di un'applicazione. L'unica sezione che parla un po 'di sicurezza è Security, e al suo interno potrebbe essere solo la sottosezione relativa all'hash delle password, il filtraggio dei dati e la disinfezione sono importanti ma ancora poco trattati.
Is there is a standard way of handling this?
L'articolo che hai collegato agli stati: Non esiste un modo canonico per usare PHP. La stessa cosa che possiamo dire: Non esiste un modo canonico per usare PHP in modo sicuro . Ciò detto, il principio del privilegio minimo che hai menzionato è d'obbligo e ci sono ancora buone pratiche di sicurezza che devi seguire perché solo una combinazione di questi principi tutti insieme può darti una garanzia migliore:
-
Difesa in profondità : devi risolvere il tuo problema in termini di livelli di sicurezza: installazione sicura di Apache, stile di codifica sicuro, firewall, file .htaccess efficaci ... Mentre alcuni argomentate che questo principio aggiunge complessità alla vostra applicazione e può portare nuovi rischi per la sicurezza, un'applicazione intelligente di questo principio può mantenere la vostra applicazione semplice ma sicura (ad esempio: hashing passord che consente l'accesso alle vostre cartelle è buono, ma salarli è meglio, peppering Inoltre, è anche meglio).
-
Specifica cartella e file lista bianca : anziché elencare cartelle e file a cui non è possibile accedere, è necessario autorizzare piuttosto l'accesso ai tuoi file / cartelle pubblici e rifiutare tutto il resto perché in questo modo non dimenticherai di proteggere alcuni file sensibili.
-
Minimo privilegio : i tuoi permessi di risorsa (i file nel tuo caso, ma puoi prendere in considerazione altri elementi) devono essere concessi al livello minimo per utenti del tuo sito web
- Non fare molto affidamento su sicurezza attraverso l'oscurità per nascondere i tuoi file.
- Riduci a icona la superficie di attacco della tua applicazione web
-
Rileva le intrusioni : registra le informazioni rilevanti per la sicurezza per identificare i rischi e proteggere la tua applicazione
- Alcuni pensano che una rinomata società di hosting sia sufficiente come elemento per proteggere la propria applicazione, ma è comunque necessario proteggere la propria applicazione separatamente e indipendentemente dall'ambiente di hosting
- Non fare affidamento solo sugli attori di terze parti per proteggere la tua applicazione