2011-07-22 43 views
9

我最近遇到了Python pickle和cPickle模塊的安全問題。 顯然,在pickle中沒有實現真正的安全措施,除非您將find_class方法作爲基本修改來覆蓋 以獲得更多安全性。但我經常聽說,JSON更安全。JSON與Pickle安全

任何人都可以詳細介紹一下嗎?`爲什麼JSON比泡菜更安全?

非常感謝! 馬克

+3

你是什麼意思的「碰到」?你讀過一些說他們不安全的東西?你是否實施了黑客攻擊?或者是什麼? –

回答

12

json更安全,因爲它從根本上更有限。 json文檔可以編碼的唯一python類型是unicode,int,float,NoneType,bool, listdict。這些都是以基本微不足道的方式進行編組/解組,而且不容易受到代碼注入攻擊。

6

Pickle的問題是它可以調用任意的Python代碼。詳情請參閱http://nadiana.com/python-pickle-insecure。 JSON解析器只需創建字符串,數字,列表,字典等。它從不創建用戶定義的類,所以它不需要執行任意的Python。