[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [linux_var] Bash e Taint Check



Sono d'accordissimo con il fare un programma, poiché uno script in bash con tutto il controllo parametri sarebbe un po' troppo lungo e, relativamente, lento.

Non sono un grande esperto di scripting, ma consiglio come linguaggio il Python che è presente sul 99% dei server ed ha una gestione ottimale delle stringhe e delle socket per il controllo della correttezza ed esistenza dell'hostname/IP.

Diego Roversi <diegor@tiscali.it> wrote:
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.
_______________________________________________
Talking mailing list
Talking@ml.linuxvar.it
http://ml.linuxvar.it/cgi-bin/mailman/listinfo/talking