[Python] [ANN] secimport

Marco Giusti marco.giusti a gmail.com
Mar 16 Nov 2010 14:41:27 CET


On Tue, Nov 16, 2010 at 01:45:16PM +0100, Manlio Perillo wrote:
[...]
> > prima di tutto il modulo stesso deve essere importato e prima di essere
> > importato non c'? nessun controllo sul modulo stesso, ergo basta
> > modificare il modulo `secimport`.
> 
> Infatti per maggiore sicurezza l'hook può essere implementato in C.
> Si parlava infatti del caso in cui una applicazione vuole embedare
> l'interprete Python.

avevo capito ma comunque il modulo è stato scritto in python, non in C.

> > quando fai il controllo del file `__init__.py` si deve controllare anche
> > i relativi `.pyc` e `.pyo`, infatti basta modificare a piacere il file
> > `__init__.py`, copiare il bytecode nella giusta posizione, il file
> > `__init__.py` rimane quello originale ma viene modificato l'mtime.
> > `secimport` controlla il file `__init__.py` ma l'importer python
> > caricher? il bytecode modificato.
> 
> Questo è un punto su cui non sono sicuro.
> Innanzitutto, comunque, secimport *non* controlla __init__.py ma il
> modulo __init__.
>     fp, pathname, descr = imp.find_module('__init__', [self.pathname])

linea 78 in load_module, viene verificato il checksum del file
`__init__.py`.

> > di questo punto non sono sicuro, ma non vengono effettuati controlli
> > sulle estenzioni C, l'unico controllo ?
> 
> No, quelle non sono estensioni C; sono moduli *builtin*, linkati
> **staticamente** nell'interprete cpython.

cancello dagli atti questa affermazione, non conosco bene `imp` ed
alcune mie assunzioni erano sbagliate.

ciao
m.


-- 
La calunnia è un venticello
Un'auretta assai gentile
Che insensibile, sottile,
Leggermente, dolcemente,
Incomincia a susurrar. 
		-- Basilio, Il barbiere di Siviglia


Maggiori informazioni sulla lista Python