Se stai cercando di mitigare questo tipo di problemi, potresti essere interessato a eseguire il tuo server web come utente non root all'interno di una finestra mobile contenitore o contenitore LXC.
Questo attenua la minaccia nel modo in cui Docker funziona. I container Docker sono isolati ambienti Linux che, per tutti gli scopi intensivi, sono sistemi operativi autonomi. Sono incredibilmente leggeri, tuttavia, e non sono la stessa cosa della virtualizzazione in alcun modo.
L'esecuzione del server web all'interno di un contenitore Docker come utente non root significa che al meglio un utente malintenzionato può accedere solo alla memoria del contenitore Docker e mai alla memoria del computer host, a condizione che Docker e LXC è stato implementato correttamente (e il supporto LXC nel kernel è in circolazione da un po 'di tempo).
Utilizzando il supporto di rete di Docker, è possibile "esporre" il server Web alla propria porta locale 80/443, che utilizza fondamentalmente il port forwarding per inoltrare tutto il traffico su quelle porte per selezionare le porte sul contenitore Docker (ad es. 8080 e 8443, perché non è possibile associare a 80 e 443 come utente non root).
Per l'utente finale, in effetti non è cambiato nulla. Tutto il traffico viene inoltrato a un server web reale in esecuzione in un contenitore LXC. Tuttavia, se un utente malintenzionato riesce a ottenere l'esecuzione di codice in modalità remota, sarà incredibilmente limitato a ciò che sarà in grado di fare (anche in questo caso, se Docker e LXC sono stati implementati correttamente).