On Nov 1, 12:04 am, Paul Rubin <http://[EMAIL PROTECTED]> wrote:
> Raymond Hettinger <[EMAIL PROTECTED]> writes:
> > ''' This is not a general "persistence" module.  For general
> > persistence and transfer of Python objects through RPC calls, see
> > the modules :mod:`pickle` and :mod:`shelve`.
>
> That advice should be removed since Python currently does not have a
> general persistence or transfer module in its stdlib.  There's been an
> open bug/RFE about it for something like 5 years.  The issue is that
> any sensible general purpose RPC mechanism MUST make reasonable
> security assertions that nothing bad happens if you deserialize
> untrusted data.  The pickle module doesn't make such guarantees and in
> fact its documentation explicitly warns against unpickling untrusted
> data.  Therefore pickle should not be used as a general RPC
> mechanism.

This is absolutely correct.  Marshal is more secure than pickle
because marshal *cannot* execute code automatically whereas pickle
does.  The assertion that marshal is less secure than pickle is
absurd.

This is exactly why the gadfly server mode uses marshal and not
pickle.

  -- Aaron Watters

===
why do you hang out with that sadist?
beats me!  -- kliban

-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to