国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

Python 中的 10 個常見安全漏洞,以及如何避免(下)

PiscesYE / 526人閱讀

摘要:在考慮安全性時,你需要考慮如何避免被濫用,也不例外,即使在標準庫中,也存在用于編寫應用的不良實踐。修復使用替換標準庫模塊,它增加了針對這些類型攻擊的安全防護。但這卻是中最大的安全漏洞之一。

簡評:編寫安全代碼很困難,當你學習一個編程語言、模塊或框架時,你會學習其使用方法。 在考慮安全性時,你需要考慮如何避免被濫用,Python
也不例外,即使在標準庫中,也存在用于編寫應用的不良實踐。然而,許多 Python 開發人員卻根本不知道它們。

接上篇

6. 解析 XML(Parsing XML)

如果你的應用程序要加載、解析 XML 文件,則你可能正在使用 XML 標準庫模塊。通過 XML 的攻擊大多是 DoS 風格(旨在使系統崩潰而不是泄露數據),這些攻擊十分常見,特別是在解析外部(即不可信任的)XML 文件時。

其中有個「billion laughs」,因為他的 payload 通常包含很多(十億)「lols」。基本上,這個原理是可以在 XML 中使用參照實體,所以當解析器將這個 XML 文件加載到內存中時,它會消耗數 G 大小的內存(RAM)。

試試看,如果你不相信我的話 :-)



  
  
  
  
  
  
  
  
]>
&lol9;

另一些攻擊使用外部實體擴展。XML 支持從外部 URL 引用實體,XML解析器通常會毫無疑問地獲取并加載該資源。「攻擊者可以規避防火墻并訪問受限制的資源,因為所有請求都是由內部可信的 IP 地址創建的,而不是來自外部。」

需要考慮的另一種情況是依賴的第三方軟件包需要解碼 XML ,例如配置文件、遠程 API。你甚至可能不知道某個依賴關系會將這些類型的攻擊置之不理。

修復:

使用 defusedxml 替換標準庫模塊,它增加了針對這些類型攻擊的安全防護。

7. 受污染的 site-packages 或 import 路徑

Python 的 import 系統非常靈活,當你想要為測試寫猴子補丁或重載核心功能時,這是非常棒的。

但這卻是 Python 中最大的安全漏洞之一。

安裝第三方軟件包,無論是在虛擬環境中還是全局(通常不鼓勵)都會讓你看到這些軟件包中的安全漏洞。有一些發布到 PyPi 的軟件包與流行的軟件包具有相似的名稱,但是卻執行了任意代碼。

需要考慮的另一種情況是依賴的依賴,他們可能包含漏洞,他們也可以通過導入系統覆蓋Python 中的默認行為。

修復:

看看 http://PyUp.io 及其安全服務,為所有應用程序使用虛擬環境,并確保全局的 site-packages 盡可能干凈,檢查包簽名。

8. 序列化 Pickles

反序列化 pickle 數據和 YAML 一樣糟糕。Python 類可以聲明一個 reduce 方法,該方法返回一個字符串,或一個可調用的元組以及使用 pickle 序列化時調用的參數。攻擊者可以使用它來包含對其中一個子進程模塊的引用,以在主機上運行任意命令。

修復:

切勿使用 pickle 反序列化不受信任或未經身份驗證來源的數據。改用另一種序列化模式(如JSON)。

9. 使用系統 Python 運行時并且不修復它

大多數 POSIX 系統都自帶有一個 Python 2 版本(通常是舊版本)。

有時候 Python(即 CPython 是用 C 語言編寫的) 解釋器本身存在漏洞, C 中的常見安全問題與內存分配有關,所以大多是緩沖區溢出錯誤,CPython 多年來一直存在一些溢出漏洞,每個漏洞都在后續版本中進行了修復。也就是說,如果及時升級 python 運行時,就很安全。

修復:

為生產應用程序安裝最新版本的 Python,并及時安裝修復更新!

10. 不修復依賴關系

類似于不修補 python 運行時,還需要定期修補依賴關系。

在 PyPi 的軟件包中「釘住」 Python 軟件包版本的做法是很糟糕的,目的是「這些是能正常工作的版本」,所以每個人都不升級它。

上面提到的代碼中的所有漏洞在第三方包中存在時同樣重要,這些軟件包的開發人員每時每刻都在修復安全問題。

修復

使用像 PyUp.io 這樣的服務來檢查更新,向應用程序提出 pr,并運行測試以保持軟件包是最新的。

原文:10 common security gotchas in Python and how to avoid them

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/41905.html

相關文章

  • Python 中的 10 常見安全漏洞以及如何避免(上)

    摘要:在考慮安全性時,你需要考慮如何避免被濫用,也不例外,即使在標準庫中,也存在用于編寫應用的不良實踐。計時攻擊需要精確性,所以通常不能用于高延遲的遠程網絡。由于大多數應用程序涉及可變延遲,因此幾乎不可能在服務器上編寫計時攻擊。 簡評:編寫安全代碼很困難,當你學習一個編程語言、模塊或框架時,你會學習其使用方法。 在考慮安全性時,你需要考慮如何避免被濫用,Python 也不例外,即使在標準庫中...

    Jingbin_ 評論0 收藏0
  • Python 中的 10 常見安全漏洞以及如何避免(上)

    摘要:在考慮安全性時,你需要考慮如何避免被濫用,也不例外,即使在標準庫中,也存在用于編寫應用的不良實踐。計時攻擊需要精確性,所以通常不能用于高延遲的遠程網絡。由于大多數應用程序涉及可變延遲,因此幾乎不可能在服務器上編寫計時攻擊。 簡評:編寫安全代碼很困難,當你學習一個編程語言、模塊或框架時,你會學習其使用方法。 在考慮安全性時,你需要考慮如何避免被濫用,Python 也不例外,即使在標準庫中...

    Kaede 評論0 收藏0
  • 10你應該了解的Git命令(以及Git省時小竅門)

    摘要:下面是需要了解的個命令和它們的一些常見標志。每個命令都鏈接到該命令的指南。僅用于提交級別。指定一個不同的提交,而不是來丟棄自提交以來的更改。包裝在本文中,你已經看到了一些關鍵的命令,并配置了環境以節省時間。 showImg(https://segmentfault.com/img/remote/1460000018662396); 在本文中,我們將討論那些作為開發人員、數據科學家或產品...

    laoLiueizo 評論0 收藏0
  • Python和SQL Server 2017的強大功能

    摘要:它主要是為了允許在中使用基于的機器學習,但是它可以與任何庫或框架一起使用。已經通過啟用服務器通過使用的機器學習服務在中執行腳本,添加到其高級分析擴展,現在稱為機器學習服務。存儲的實例必須安裝具有的機器學習服務要在中使用執行腳本,應運行或。 Python和SQL Server 2017的強大功能 Python是SQL Server 2017的新功能。它主要是為了允許在SQLServer中...

    everfight 評論0 收藏0
  • 深度辨析 Python 的 eval() 與 exec()

    摘要:內置函數們能夠被提拔出來,這就意味著它們皆有獨到之處,有用武之地。因此,掌握內置函數的用法,就成了我們應該點亮的技能。報錯包含了內置命名空間中的名稱,在控制臺中輸入,就能發現很多內置函數異常和其它屬性的名稱。 Python 提供了很多內置的工具函數(Built-in Functions),在最新的 Python 3 官方文檔中,它列出了 69 個。 大部分函數是我們經常使用的,例如 p...

    AndroidTraveler 評論0 收藏0

發表評論

0條評論

PiscesYE

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<