它在Python文檔中聲明pickle
不安全,不應解析不可信用戶輸入。如果你研究這個;幾乎所有的例子都通過os.system
與system()
聯繫。瞭解Python Pickle不安全
什麼不是我明白,是如何os.system
正確解釋沒有os
模塊被導入。
>>> 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 2012-04-24 17:03:48