<div dir="ltr">Right, I forgot that that was mentioned in this thread.  Then, I don't see the problem with unpickle.  Is it still not secure enough for matplotlib e.g.?</div><div class="gmail_extra"><br><div class="gmail_quote">On Thu, Jul 23, 2015 at 10:26 AM, Eric V. Smith <span dir="ltr"><<a href="mailto:eric@trueblade.com" target="_blank">eric@trueblade.com</a>></span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">On 07/23/2015 09:54 AM, Neil Girdhar wrote:<br>
><br>
><br>
> On Wed, Jul 22, 2015 at 9:46 PM, Nathaniel Smith <<a href="mailto:njs@pobox.com">njs@pobox.com</a><br>
> <mailto:<a href="mailto:njs@pobox.com">njs@pobox.com</a>>> wrote:<br>
<span class="">><br>
>     On Wed, Jul 22, 2015 at 5:27 PM, Neil Girdhar <<a href="mailto:mistersheik@gmail.com">mistersheik@gmail.com</a><br>
>     <mailto:<a href="mailto:mistersheik@gmail.com">mistersheik@gmail.com</a>>> wrote:<br>
>     ><br>
>     > That is so unfortunate.  Pickle is such a good solution except for the<br>
>     > security.  Why can't we have security too?  It doesn't seem to me to be<br>
>     > right for a project like matplotlib to be writing their own serialization<br>
>     > library.  It would be awesome if Python had secure serialization built-in.<br>
><br>
>     The reason you can pickle/unpickle arbitrary Python objects is that<br>
>     the pickle format is basically a structured, optimized way of<br>
>     generating and then evaluating arbitrary Python code. Which is great<br>
>     because it's totally general -- that's why we love pickle, you can<br>
>     pickle anything -- but that exact feature is what makes it insecure.<br>
>     If you want to make something secure, that means making some explicit<br>
>     decisions about what kinds of things can be put into your data format<br>
>     and which cannot, and write some explicit code to handle each of these<br>
>     things instead of just handing the file format direct access to your<br>
>     interpreter. But by the time you've done that you've done the hard<br>
>     part of implementing a new format anyway...<br>
><br>
><br>
> Wouldn't it be easier to just tell unpickle which code it's allowed to<br>
> run (by passing a list of modules and classes)?<br>
<br>
</span>unpickle can already do that, via Unpickler.find_class. There's an<br>
example in the docs.<br>
<br>
Eric.<br>
<span class=""><br>
_______________________________________________<br>
Python-ideas mailing list<br>
<a href="mailto:Python-ideas@python.org">Python-ideas@python.org</a><br>
</span><span class=""><a href="https://mail.python.org/mailman/listinfo/python-ideas" rel="noreferrer" target="_blank">https://mail.python.org/mailman/listinfo/python-ideas</a><br>
Code of Conduct: <a href="http://python.org/psf/codeofconduct/" rel="noreferrer" target="_blank">http://python.org/psf/codeofconduct/</a><br>
<br>
</span><span class="">--<br>
<br>
---<br>
You received this message because you are subscribed to a topic in the Google Groups "python-ideas" group.<br>
</span>To unsubscribe from this topic, visit <a href="https://groups.google.com/d/topic/python-ideas/OhYb7RHNHyA/unsubscribe" rel="noreferrer" target="_blank">https://groups.google.com/d/topic/python-ideas/OhYb7RHNHyA/unsubscribe</a>.<br>
To unsubscribe from this group and all its topics, send an email to <a href="mailto:python-ideas%2Bunsubscribe@googlegroups.com">python-ideas+unsubscribe@googlegroups.com</a>.<br>
For more options, visit <a href="https://groups.google.com/d/optout" rel="noreferrer" target="_blank">https://groups.google.com/d/optout</a>.<br>
</blockquote></div><br></div>