Mi piace vedere il livello dell'applicazione Web lato server quanto più indipendente possibile dal sistema operativo, dal software server come (Apache, nginx, IIS, eccetera). Per afferrare facilmente l'applicazione e distribuirla su un sistema più recente. Ciò ha vantaggi e rischi.
Nell'esempio userò una configurazione con Apache e PHP. Quando il nuovo software OS o server sottostante non è configurato correttamente (che è effettivamente un altro problema), il linguaggio di programmazione, ad esempio PHP, potrebbe non essere interpretato come codice ma come testo. Pertanto, se tutto il codice sorgente si trova in una cartella pubblica (e la struttura della cartella file è nota), il codice sorgente perde. Vengono in mente diverse soluzioni:
- sposta tutti (eccetto uno) i file PHP fuori dalla cartella pubblica in modo che se accade solo un file (con include solo) sia trapelato e non l'intero codice sorgente;
- rileva se il sistema sottostante come Apache supporta PHP, ad esempio in
.htaccess
(dato che viene fornito con l'applicazione) e nega l'accesso a tutto quando PHP non è supportato / abilitato. Una volta ho fatto una domanda al riguardo: link .
Tali metodi sono facili da usare e migliorano il concetto di sicurezza a più livelli. Dal momento che se il livello sottostante fallisce, l'applicazione può ancora fallback nel proprio stato deny. Prevenire in questo caso perdite di codice sorgente.
Mi piacerebbe sapere se ci sono altri metodi allo scopo di prevenire la perdita di codice sorgente. Ad esempio in un firewall o proxy dell'applicazione Web che rileva modelli di codice sorgente o approcci diversi alla configurazione pratica.