[python] Restricted Python

Jan Janech devel na atlas.sk
Středa Květen 5 15:21:51 CEST 2010


Pozor! RestrictedPython umoznuje iba plne kontrolovat, ku ktorym 
objektom ma vykonavany kod pristup a ku ktorym nie. Okrem toho, ze je  s 
nim vykonanie pomalsie, neumozni osetrit situacie, ktore som nacrtol v 
mojom druhom maily. Ak by ten druhy mail neprisiel, tak su to napr. tieto:

rekurzia
 >>> superNebezpecnyKod='(lambda x=(lambda y: y(y)): x(x))()'
nekonecny cyklus:
 >>> superNebezpecnyKod='(lambda x=[1]: [x.append(1) for i in x])()'
zrut pamate a cpu:
 >>> superNebezpecnyKod='2**10000000000000000'

a kopec inych.

okrem toho, len poopravenie: RestrictedPython kod nekompiluje, iba 
patchuje existujuci bytekod. Kompilaciu zdrojaku nechava na Python.

Jan Janech

On 05/05/10 15:02, Jakub Zíka wrote:
> V Pythonu dříve existoval modul rexec a Bastion, které měly zajistit,
> aby bylo možné bezpečně spouštět nedůvěryhodný kód. S uvedením novější
> verze Pythonu (mám pocit, že 2.3) se ale našly nějaké bezpečnostní
> díry a tyto moduly byly defaultně zakázány. Teď jsem ale narazil na
> modul ResctrictedPython
> (http://pypi.python.org/pypi/RestrictedPython), který se tváří jako že
> žádné bezpečnostní díry nemá. Nejdůležitější vlastností je to, že si
> poskytnutý kód sám zkompiluje a například nedovolí jakékoliv používání
> objektů, jejichž název začíná podtržítkem. Jaký je váš názor? Máte
> nějaké zkušenosti? Na netu jsem nikde nenašel žádnou studii, jestli to
> funguje nebo ne.
> _______________________________________________
> Python mailing list
> Python na py.cz
> http://www.py.cz/mailman/listinfo/python
>
>
>


-- 

____________________________
Ing. Jan Janech
Katedra softverovych technologii
Fakulta riadenia a informatiky
Zilinska Univerzita


Další informace o konferenci Python