Esiste una sola regola importante: se si invoca un programma esterno (attraverso le funzioni os.system() o os.popen(), o altre con funzionalità simili), occorre prestare estrema attenzione a non far passare stringhe arbitrarie ricevute dal client alla shell. Questa è una mancanza di sicurezza ben conosciuta dove un cracker può forzare uno script CGI debole per eseguire comandi di shell arbitrari. Ogni parte della URL o del nome del campo non può essere considerata affidabile, se la richiesta non arriva dalla propria form!
Per avere più sicurezza, si deve passare la stringa ottenuta dalla form ad un comando di shell, cercando di assicurarsi che la stringa contenga esclusivamente caratteri alfanumerici, lineette, trattini bassi e punti.
Vedete Circa questo documento... per informazioni su modifiche e suggerimenti.