Am 04.11.2010 17:15, schrieb anatoly techtonik:
> pickle is insecure, marshal too.

If the transport or storage layer is not save, you should cryptographically sign the data anyway::

    def pickle_encode(data, key):
        msg = base64.b64encode(pickle.dumps(data, -1))
        sig = base64.b64encode(hmac.new(key, msg).digest())
        return sig + ':' + msg

    def pickle_decode(data, key):
        if data and ':' in data:
            sig, msg = data.split(':', 1)
            if sig == base64.b64encode(hmac.new(key, msg).digest()):
                return pickle.loads(base64.b64decode(msg))
        raise pickle.UnpicklingError("Wrong or missing signature.")

Bottle (a web framework) uses a similar approach to store non-string data in client-side cookies. I don't see a (security) problem here.

--
Mit freundlichen Grüßen
Marcel Hellkamp
_______________________________________________
Python-Dev mailing list
Python-Dev@python.org
http://mail.python.org/mailman/listinfo/python-dev
Unsubscribe: 
http://mail.python.org/mailman/options/python-dev/archive%40mail-archive.com

Reply via email to