2014-03-18 13:39 GMT+01:00 Manlio Perillo <manlio.peri...@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: berda...@gmail.com bitmessage: BM-2cTYXfGiSTsnx3righ6aHcJSWe4MV17jDP gpg fingerprint: 3F8D53518012716C4EEF7DF67B498306B3BF75A0 (used just for signing commits) _______________________________________________ Python mailing list Python@lists.python.it http://lists.python.it/mailman/listinfo/python