[Python] alternative ad eval

Dario Bertini berdario a gmail.com
Mar 18 Mar 2014 14:02:44 CET


2014-03-18 13:39 GMT+01:00 Manlio Perillo <manlio.perillo at gmail.com>:
> eval è relativamente sicuro, dato che può eseguire solo espressioni, e non
> statement completi come exec.
> Lo puoi rendere ancora più sicuro limitando il namespace, ad esempio:

purtroppo, non basta:
http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html
http://nedbatchelder.com/blog/201302/finding_python_3_builtins.html

>
> Questo però non basta, devi avere il controllo anche su value, ad esempio
> accettando solo stringhe secondo un dato protocollo, di cui farai il parsing
> e validazione.
> Il mio protocollo preferito è "Typed NetStrings":
>   "<typeid><len>:<literal>
> Ad esempio per un intero:
>   "i3:777"
>
> tale protocollo è facile da leggere, parsare e validare (perchè verboso)
>

sembra simile a un Type-Length-Value

http://en.wikipedia.org/wiki/Type-length-value


se possibile, preferite linguaggi regolari ad un TLV o altro formato
context-sensitive

http://www.youtube.com/watch?v=v8F8BqSa-XY
http://langsec.org


-- 
xmpp: berdario at gmail.com
bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP
gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just
for signing commits)


Maggiori informazioni sulla lista Python