[python] parsing souboru
    Jan Janech 
    devel na atlas.sk
       
    Středa Květen  5 15:12:56 CEST 2010
    
    
  
Potesim Vas, z evalu ani z execu sa pokial mi je znamo utiect neda. Teda 
ak to clovek vie spravit.
staci nieco taketo:
 >>> eval(superNebezpecnyKod, {'__builtins__': {}}, {})
alebo
 >>> exec superNebezpecnyKod in {'__builtins__': {}}, {}
zavisi ale od toho, akym situaciam sa chcete vyhnut.
coho sa nezbavite (ani evalom) je napr nekonecna rekurzia:
 >>> superNebezpecnyKod='(lambda x=(lambda y: y(y)): x(x))()'
to az tak neboli, ak nemate povolenu nejaku prilis hlboku uroven rekurzie.
co tak ale nekonecny cyklus?
 >>> superNebezpecnyKod='(lambda x=[1]: [x.append(1) for i in x])()'
alebo supernarocne operacie?
 >>> superNebezpecnyKod='2**10000000000000000'
vela stastia pri vyuzivani evalu a execu :D
Jan Janech
On 05/05/10 14:26, Hynek Fabian wrote:
> Jan Janech (středa 05 Květen 2010 13:08:49):
>> Dovolim si oponovat. Vsetko co sa da v pythone v exec spravit pre
>> narusenie bezpecnosti sa da spravit aj v eval.
> Jak?
>
> eval(x, {}, {})
>
> Jakým X se dá z takové konstrukce utéci?
> _______________________________________________
> 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