Memorizzare la configurazione al di fuori della directory principale del sito web accessibile pubblicamente.
I segreti e la configurazione di produzione risiedono al di fuori delle directory pubbliche e vengono caricati con permessi di file minimi o tramite le variabili d'ambiente.
Per gli sviluppatori PHP e gli operatori di siti web, la "configurazione PHP al di fuori della directory principale del sito web" può essere verificata in tre punti specifici: "Separazione fisica", "Permessi di file minimi" e "Distribuzione del codice sorgente".
Pubblicato: 3 minuti di lettura · Autore: Sebastian Geier
Come viene memorizzata la configurazione PHP in modo che il server web non la distribuisca accidentalmente?
La configurazione dell'applicazione viene caricata tramite un percorso assoluto fisso al di sopra della directory principale del sito web o di un archivio segreto appropriato. La proprietà dei file e i permessi di lettura limitano l'accesso al processo dell'applicazione; valori sensibili non sono presenti nel repository, con conseguente output di errore, backup con permessi di condivisione errati e diagnostica pubblica.
Caso d'uso: "Consegna del codice sorgente"
Una piccola applicazione gestisce l'accesso al database in config. php insieme a index. php. Il file viene spostato in una directory leggibile solo dal processo PHP al di sopra della directory principale del sito; l'applicazione lo carica tramite un percorso fisso e si interrompe senza visualizzare alcun dettaglio se mancano dei valori.
Permessi minimi sui file
Inventariare la directory principale del sito web e tutti i file attualmente accessibili tramite essa, e limitare esplicitamente le risorse pubbliche.
Spostare la configurazione in un percorso protetto o in un archivio riservato e impostare permessi e autorizzazioni minimi.
Verificare il percorso di caricamento assoluto, i valori mancanti, la configurazione errata del server web e le fughe di informazioni riservate nei log e negli artefatti.
Distribuzione del codice sorgente
Distribuzione del codice sorgente Una configurazione del server errata distribuisce file PHP o di ambiente come testo, rivelando le credenziali di accesso dalla directory principale del sito web.
Segretezza del repository I token di produzione finiscono nella cronologia delle versioni, negli artefatti di build o nei backup condivisi degli sviluppatori, nonostante siano archiviati in modo sicuro.
Eccessiva leggibilità Le autorizzazioni globali dei file consentono ad altre applicazioni o ad account di sistema compromessi di accedere a tutte le informazioni riservate.
Separazione fisica
Separazione fisica – Nessun URL può risolvere direttamente il file di configurazione, anche in caso di errori nell'elaborazione PHP o nelle regole del server web.
Permessi minimi sui file – Solo i ruoli di distribuzione e applicazione necessari possono leggere o modificare il contenuto; gli altri utenti di sistema sono esclusi.
Percorso di caricamento controllato – L'applicazione utilizza una sorgente fissa e verificata e, in caso di configurazione mancante, ricorre in modo sicuro alle credenziali predefinite.
Percorso di caricamento controllato
Numero di file sensibili nella directory principale del sito web o nei percorsi di build e backup accessibili pubblicamente.
Percentuale di credenziali di produzione con archiviazione gestita, accesso minimo, rotazione ed esclusione verificata dagli artefatti.
Domande correlate e prossimi passi
Separato da "Configurazione PHP al di fuori della directory principale del sito web" Lettura sicura di file JSON e gestione di dati errati Un'importante domanda di approfondimento: Come reagisce PHP in modo inequivocabile a un file JSON mancante, illeggibile o non valido?
Per coloro che desiderano approfondire "Configurazione PHP al di fuori della directory principale del sito web" dal punto di vista del cluster "Hosting, Server, CDN e Caching", consultare [link alla documentazione pertinente]. Gestione corretta dei permessi e della proprietà dei file sui server web la classificazione appropriata.
Se si desidera implementare concretamente la "configurazione PHP al di fuori della directory principale del sito web", è possibile fare riferimento a: Sistemi web robusti Questo documento si concentra su "Confini di codice, percorsi e dipendenze" e "Separazione fisica".
Conclusione: Configurazione PHP al di fuori della directory principale del sito web
La regola più sicura per i server web per quanto riguarda i segreti è non inserirli affatto nella struttura di directory dei file distribuiti. I diritti di accesso e gli errori di caricamento controllati chiudono i percorsi di sistema rimanenti.
Fonti e ulteriori informazioni
Queste fonti primarie sono autorevoli per il comportamento della piattaforma, la terminologia e i limiti di controllo nella "configurazione PHP al di fuori della directory principale del sito web".
json_decode – Manuale PHPIl manuale PHP documenta i tipi di ritorno, gli errori, i limiti di profondità e JSON_THROW_ON_ERROR per l'elaborazione controllata di JSON.
Sicurezza del filesystem – Manuale PHPLa documentazione ufficiale di PHP descrive i permessi dei file, la proprietà, l'accesso al server web e i rischi dei nomi di file dinamici.
Schema composer. json – ComposerLa documentazione ufficiale di Composer definisce i metadati del pacchetto, i requisiti di versione, l'autoloading e i campi di configurazione.
Tesi chiave
La directory principale dei documenti pubblici contiene solo i file distribuiti e un punto di ingresso controllato. La configurazione si trova al di sopra della directory principale o in un archivio segreto, appartiene a un proprietario appropriato e viene caricata tramite un percorso assoluto fisso.
Cosa non riguarda
Un'estensione di file, una regola di disallow o un punto prima del nome non proteggono in modo affidabile i segreti se il server web può accedere al file.
Di cosa si tratta
La directory principale pubblica contiene solo risorse distribuibili e un punto di accesso controllato; la configurazione e i segreti si trovano al di fuori di questo confine.
Ulteriori approfondimenti
PHP, moduli e sicurezza
Padronanza dei percorsi relativi e assoluti nei progetti annidati.
"Configurazione PHP al di fuori della directory principale del sito web" include, come controllo separato, la domanda: Come si impedisce che gli include PHP in directory annidate utilizzino improvvisamente percorsi errati?
PHP, moduli e sicurezza
Disabilitare l'output degli errori in produzione senza perdere le funzionalità diagnostiche.
Aggiunge una decisione separata a "Configurazione PHP al di fuori della directory principale del sito web": Come possono gli errori PHP rimanere rilevabili se i dettagli non sono consentiti nel browser?
Panoramica degli Insight
Tutti gli Insight di VELUNO in sintesi
Ulteriori analisi sui sistemi web, la visibilità digitale e modelli di lavoro robusti.
Permessi minimi dei file: test di qualità iniziale
La directory principale del sito web corrente deve essere controllata per individuare file di configurazione, backup e di ambiente. Eventuali segreti trovati non solo verranno spostati, ma anche valutati e ruotati se potrebbero potenzialmente esporli.