Domanda

Come faccio a creare un gestore di eventi nel mio codice Perl per intercettare tutte le chiamate dei file / directory / basati sul sistema, in modo che possa untaint ingresso in modo just-in-time.

ho un sacco di accesso IO nel mio script, e trovo l'aggiunta di codice manuale ingombrante untainting.

si può fare senza bisogno di installare un modulo CPAN di terze parti?

È stato utile?

Soluzione

Si potrebbe provare a prendere un orientata agli aspetti approccio ma richiede l'installazione di un modulo CPAN, Aspect .

Per catturare le chiamate ad un particolare metodo / funzione, si definisce una pointcut (tratto dal Aspect POD):

$pointcut = call qr/^Person::[gs]et_/; # defines a collection of events

Quindi definire il codice per prendere prima della chiamata:

$before = before {
  print "g/set will soon be called";
} $pointcut;

Anche se non sono sicuro se il modulo di Aspect consente di chiamate trappola al CORE :: * namespace.

Altri suggerimenti

Come si aspettano di untaint dati generali? Se hai intenzione di accettare ciecamente tutto ciò nonostante la sua fonte, non c'è nessun punto nel usando taint controllo.

Si potrebbe desiderare di leggere il capitolo "Tecniche di programmazione sicura" in Mastering Perl . Io do un po 'di consigli per affrontare questo genere di cose. Tuttavia, qualsiasi buon consiglio sta per essere mirati a specifiche situazioni, non generalizzazioni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top