Se il mio codice utilizza moduli di terze parti che non può essere attendibile, c'è qualcosa per evitare che la situazione in questo modo:Protezione moduli importati di essere corrotto dal codice di terze parti
UntrustedModule.py:
import random
random.random = lambda : 4
MyModule .py:
import random
import UntrustedModule
print (random.random())
dove la semplice importazione di questo modulo interrompe le ipotesi su altre, non correlate?
I moduli non attendibili possono fare molto di più che sostituire solo le funzioni e così via. Non eseguire moduli non fidati. –
Questa modifica sembra corretta (vedi http://xkcd.com/221/). ;) – Matthias
Python non è progettato per impedirlo. Se questo è un requisito, starai meglio usando un linguaggio (come Lua o Javascript) o creando uno schema di sandboxing che esegua i moduli in un altro processo. – millimoose