[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