-----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Il 13/11/2010 20:01, Manlio Perillo ha scritto: > [...] > > La parte tecnicamente più complessa è verificare l'hash. > Una idea è farlo al momento in cui avviene l'import di un modulo; per > questo prova a dare una occhiata al modulo ihooks (non documentato, devi > leggere il codice). > > Oppure dai una occhiata a > http://www.python.org/dev/peps/pep-0302/ >
Ecco un proof of concept, basato sul PEP 302: http://paste.pocoo.org/show/290997/ Vantaggi ======== può essere implementato in C senza problemi; ti basta, dopo aver inizializzato l'interprete, aggiungere il tuo importer in sys.meta_path. L'importer lo puoi anche scrivere in C. Svantaggi ========= Per disabilitare la verifica delle firme, all'utente basta (a scelta): * modificare la funzione __import__ * rimuovere l'importer da sys.meta_path Ovviamente questo è un problema solo se permetti di importare moduli "untrusted"; ma il caricamento di un modulo untrusted fallirà comunque, con la politica di default (permetti solo l'import di moduli "noti" ed integri). L'unica precauzione è *disabilitare* gli hook eseguiti all'avvio dell'interprete, ad esempio il caricamento di site.py; questo perchè gli hook permettono di eseguire codice utente arbitrario *prima* che l'importer hook sia stato registrato (XXX check me). > [...] Ciao Manlio -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.10 (GNU/Linux) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org/ iEYEARECAAYFAkzfCAYACgkQscQJ24LbaUTGzwCfTgjnKrlpunVPmqNI+j8tFAY4 cMYAmwS+dJ+uLr+/Zgs+FnYzkd33vKdo =kXzb -----END PGP SIGNATURE----- _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python