On Mon, 9 Dec 2013 17:40:29 +0100
Giovanni Orlandi <orlangio@gmail.com> wrote:
Ciao a tutti,
devo lanciare un semplice script da apache con sudo.
Pero' non vorrei che passando i parametri in maniera malevola mi
fragassero il server.
Volevo sapere se lo script e' sicuro o se si deve/puo' fare un taint check.
Questo e' lo script, ovviamente apache avra' il diritto di eseguirlo con sudo:
#!/bin/bash
iptables -I FORWARD -d "$1" -j ACCEPT
Quello che mi aspetto e' che la macchina indicata nel parametro $1
venga abilitata al forward. Quello che non vorrei è che attraverso
apici dritti/rovesciati mi eseguano comandi arbitrari.
Per non saper ne leggere ne scrivere, farei un programmino in C, che equivale a questo script, che prima verifica il nome dell'host per verificare che sia sintatticamente corretto e poi lancia iptables con i suoi parametri.
Altrimenti se vuoi "ripulire" l'input da dentro lo script puoi fare cosi':
host=$( echo "$1" | tr -c '0-9A-Za-z.' ' ' )
se non ho scritto cavolate, il comando tr dovrebbe sostituire tutti i caratteri che non sono lettere, numeri o punti in uno spazio.
Non e' detto che sia sicuro al 100%. Dipende molto anche da come viene invocato lo script.