Gestione corretta dei permessi e della proprietà dei file sui server web
I file del server web devono avere un proprietario di distribuzione chiaro; il processo di runtime riceve solo i permessi di lettura o scrittura richiesti dai singoli percorsi.
Per gli amministratori di sistema e gli sviluppatori web, gli aspetti chiave del "mantenimento di permessi e proprietà dei file corretti" sono "Proprietario separato" e "Percorso di scrittura denominato". La prospettiva di "Gestione e risoluzione dei problemi del server" mostra come questi due punti interagiscono nella pratica.
Pubblicato: 3 minuti di lettura · Autore: Sebastian Geier
Quale distribuzione di proprietà e permessi protegge i file del server web senza bloccarne il funzionamento?
Il codice e la configurazione appartengono a un account di distribuzione controllato e sono generalmente di sola lettura per il processo web. Le directory di caricamento, cache e sessione ricevono ciascuna i permessi minimi necessari e non devono contenere alcun codice applicativo eseguibile.
Accesso globale in scrittura
Accesso globale in scrittura Un errore dell'applicazione può modificare il codice o la configurazione, trasformando così un difetto temporaneo in uno stato permanentemente compromesso.
Proprietà errata Le distribuzioni falliscono o generano permessi misti dopo un intervento manuale.
Esecuzione del caricamento Un file trasferito viene eseguito come codice nella directory principale del sito web perché la posizione, il proprietario o la regola del server non impongono una separazione sicura.
Esempio funzionante: "Accesso globale in scrittura"
L'utente di distribuzione sostituisce il codice dell'applicazione, mentre PHP può solo leggerlo. Una directory di caricamento appartiene a un gruppo di runtime limitato, si trova al di fuori dei percorsi eseguibili e non dispone di autorizzazioni che si estendono alle configurazioni adiacenti.
Nessuna esecuzione
File con un proprietario o una modalità al di fuori della distribuzione dichiarata prevista.
Percorsi scrivibili nella directory principale del sito web con possibilità di esecuzione di codice.
Percorso di scrittura denominato.
Inventario dei percorsi di codice, configurazione e runtime con i processi richiesti.
Impostazione della proprietà e delle autorizzazioni per ciascun percorso in base ai requisiti minimi di lettura o scrittura.
Test di errori di distribuzione, caricamento e applicazione con test negativi di autorizzazione ed esecuzione.
Proprietà separata.
Criterio di test
Proprietà separata.
Il processo web in esecuzione non può modificare il codice distribuito.
Criterio di test
Percorso di scrittura denominato.
Ogni directory scrivibile ha uno scopo specifico in fase di runtime.
Nessuna esecuzione I file caricati o generati non vengono interpretati come codice server.
Quali decisioni integrano "Mantenere corretti i permessi e la proprietà dei file"?
È disponibile una risorsa approfondita adeguata. Scelta dei modelli di processo PHP-FPM per diversi profili di caricoQuando PHP-FPM utilizza i permessi statici, dinamici o on-demand per il profilo di carico effettivo?
Inoltre: Mantieni i file sincronizzati tra sistema locale, repository e server..
Se si desidera implementare concretamente "Mantenere corretti i permessi e la proprietà dei file", è possibile fare riferimento a: Sistemi web robusti Questo documento si concentra su "Funzionamento e risoluzione dei problemi del server" e "Separazione della proprietà".
Conclusione: Mantenere corretti i permessi e la proprietà dei file.
I permessi riflettono la responsabilità del processo. La separazione della proprietà e i percorsi di scrittura strettamente limitati proteggono il codice senza bloccare l'esecuzione.
Fonti e ulteriori informazioni
Queste fonti primarie spiegano i presupposti, i limiti del sistema e i metodi di verifica per "mantenere corretti i permessi e la proprietà dei file".
chmod(2) — Pagina del manuale di LinuxLa documentazione di riferimento di Linux descrive i permessi di lettura, scrittura ed esecuzione per proprietari, gruppi e altri utenti, nonché come modificarli tramite chmod.
Suggerimenti per la sicurezza — Apache HTTP Server 2.4La documentazione di Apache fornisce raccomandazioni specifiche per proprietari, gruppi e permessi di scrittura per la directory root del server, i file binari, la configurazione e i log.
Tesi chiave
Il codice e la configurazione sono generalmente di sola lettura per il processo web e sono gestiti dall'account di distribuzione. I permessi di scrittura esistono solo per le directory di caricamento, cache o runtime con nome, senza codice eseguibile.
Cosa non riguarda
Permessi di scrittura generici come 777 non sono un metodo affidabile per risolvere i problemi di autorizzazione in un ambiente di lavoro.
Di cosa si tratta
Il deployment gestisce il codice, il processo web lo legge; solo le directory di runtime denominate consentono un accesso in scrittura limitato senza esecuzione del codice.
Ulteriori approfondimenti
Hosting, server, CDN e caching.
Eseguire le modalità di Cloudflare senza una configurazione SSL non sicura
Come controllo separato, "Mantenere corretti i permessi e la proprietà dei file" dovrebbe includere la domanda: Quale impostazione di Cloudflare impedisce una connessione parzialmente crittografata?
Hosting, server, CDN e caching.
Impostare i limiti di memoria in modo efficace anziché limitarsi a rimandare i problemi
Integrare "Mantenere corretti i permessi e la proprietà dei file" con una decisione separata: Come viene scelto un limite di memoria senza generare semplicemente un errore in seguito?
Panoramica degli Insight
Tutti gli Insight di VELUNO in sintesi
Ulteriori analisi sui sistemi web, la visibilità digitale e modelli di lavoro robusti.
Nessuna esecuzione: decisione successiva concreta
Un elenco target/effettivo di percorso, processo, proprietario e azione richiesta rende visibili i permessi eccessivi. La soluzione inizia con il codice eseguibile e i percorsi di caricamento.