Vai al contenuto principale

Approfondimento · PHP, moduli e sicurezza

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:

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

  1. Inventariare la directory principale del sito web e tutti i file attualmente accessibili tramite essa, e limitare esplicitamente le risorse pubbliche.

  2. Spostare la configurazione in un percorso protetto o in un archivio riservato e impostare permessi e autorizzazioni minimi.

  3. 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.

Implicazioni pratiche

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.