Se si autorizzano i comandi della shell ad essere eseguiti dal browser, ciò che si sta effettivamente facendo è consentire all'utente di accedere ed eseguire comandi sul proprio sistema come utente sul quale è in esecuzione il server web. Chiediti se è questo che vuoi fare? La risposta è decisamente no. Non c'è modo. No, non mai. In effetti, gli hacker trascorrono molto tempo cercando di capire come fare in modo efficace quello che hai progettato nel tuo sistema.
Puoi provare a "sanitizzare" l'input, ma poi tutto ciò che stai facendo è chiedere agli hacker di provare e trovare modi per aggirare il tuo disinfettante. Sono probabilmente più intelligenti di te.
Potresti provare ad eseguire i comandi come utente con autorizzazioni limitate. Quindi stai consentendo a chiunque di accedere come tale utente ed eseguire comandi su quel sistema. Il meccanismo delle autorizzazioni UNIX potrebbe proteggerti un po '.
Infine, potresti provare a usare chroot
per creare un ambiente molto ristretto in cui eseguire i comandi di bash. È un lavoro piuttosto lungo, e c'è ancora la possibilità che i trojan vengano inseriti nell'ambiente ristretto. Se si pianifica questa opzione, è possibile cercare il comando makejail: makejail .
L'ultima opzione è di non consentire agli utenti di eseguire comandi bash arbitrari, ma di fornire invece un elenco di comandi preconfigurati che consentono loro di eseguire, che sai essere sicuri.
Inoltre, potresti essere vulnerabile al bug Shellshock Shellshock