Pythonのドキュメントでは、pickle
は安全ではなく、信頼できないユーザ入力を解析すべきではないと述べています。あなたがこれを研究するならば。ほとんどすべての例がos.system
でsystem()
コールでこれを実証しています。Python Pickle Insecurityについて
私には分かりませんが、モジュールがインポートされていないと、os.system
が正しく解釈されます。
>>> import pickle
>>> pickle.loads("cos\nsystem\n(S'ls /'\ntR.") # This clearly works.
bin boot cgroup dev etc home lib lib64 lost+found media mnt opt proc root run sbin selinux srv sys tmp usr var
0
>>> dir() # no os module
['__builtins__', '__doc__', '__name__', '__package__', 'pickle']
>>> os.system('ls /')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'os' is not defined
>>>
誰かが説明できますか?
モジュールコードを見つけるために+1 – tMC