ユーザー入力をオブジェクトに保存する Web アプリを作成しています。このオブジェクトはピクルスになります。
オブジェクトが unpickle されたときに何か悪質なことを実行できる悪意のある入力をユーザーが作成することは可能ですか?
これは、カプセル化などの素晴らしい原則を無視しているが、私が見ているものの典型を表した、非常に基本的なコード例です。
import pickle
class X(object):
some_attribute = None
x = X()
x.some_attribute = 'insert some user input that could possibly be bad'
p = pickle.dumps(x)
# Can bad things happen here if the object, before being picked, contained
# potentially bad data in some_attribute?
x = pickle.loads(p)