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

資訊專(zhuān)欄INFORMATION COLUMN

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

PiscesYE / 535人閱讀

摘要:在考慮安全性時(shí),你需要考慮如何避免被濫用,也不例外,即使在標(biāo)準(zhǔn)庫(kù)中,也存在用于編寫(xiě)應(yīng)用的不良實(shí)踐。修復(fù)使用替換標(biāo)準(zhǔn)庫(kù)模塊,它增加了針對(duì)這些類(lèi)型攻擊的安全防護(hù)。但這卻是中最大的安全漏洞之一。

簡(jiǎn)評(píng):編寫(xiě)安全代碼很困難,當(dāng)你學(xué)習(xí)一個(gè)編程語(yǔ)言、模塊或框架時(shí),你會(huì)學(xué)習(xí)其使用方法。 在考慮安全性時(shí),你需要考慮如何避免被濫用,Python
也不例外,即使在標(biāo)準(zhǔn)庫(kù)中,也存在用于編寫(xiě)應(yīng)用的不良實(shí)踐。然而,許多 Python 開(kāi)發(fā)人員卻根本不知道它們。

接上篇

6. 解析 XML(Parsing XML)

如果你的應(yīng)用程序要加載、解析 XML 文件,則你可能正在使用 XML 標(biāo)準(zhǔn)庫(kù)模塊。通過(guò) XML 的攻擊大多是 DoS 風(fēng)格(旨在使系統(tǒng)崩潰而不是泄露數(shù)據(jù)),這些攻擊十分常見(jiàn),特別是在解析外部(即不可信任的)XML 文件時(shí)。

其中有個(gè)「billion laughs」,因?yàn)樗?payload 通常包含很多(十億)「lols」。基本上,這個(gè)原理是可以在 XML 中使用參照實(shí)體,所以當(dāng)解析器將這個(gè) XML 文件加載到內(nèi)存中時(shí),它會(huì)消耗數(shù) G 大小的內(nèi)存(RAM)。

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



  
  
  
  
  
  
  
  
]>
&lol9;

另一些攻擊使用外部實(shí)體擴(kuò)展。XML 支持從外部 URL 引用實(shí)體,XML解析器通常會(huì)毫無(wú)疑問(wèn)地獲取并加載該資源。「攻擊者可以規(guī)避防火墻并訪問(wèn)受限制的資源,因?yàn)樗姓?qǐng)求都是由內(nèi)部可信的 IP 地址創(chuàng)建的,而不是來(lái)自外部。」

需要考慮的另一種情況是依賴(lài)的第三方軟件包需要解碼 XML ,例如配置文件、遠(yuǎn)程 API。你甚至可能不知道某個(gè)依賴(lài)關(guān)系會(huì)將這些類(lèi)型的攻擊置之不理。

修復(fù):

使用 defusedxml 替換標(biāo)準(zhǔn)庫(kù)模塊,它增加了針對(duì)這些類(lèi)型攻擊的安全防護(hù)。

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

Python 的 import 系統(tǒng)非常靈活,當(dāng)你想要為測(cè)試寫(xiě)猴子補(bǔ)丁或重載核心功能時(shí),這是非常棒的。

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

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

需要考慮的另一種情況是依賴(lài)的依賴(lài),他們可能包含漏洞,他們也可以通過(guò)導(dǎo)入系統(tǒng)覆蓋Python 中的默認(rèn)行為。

修復(fù):

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

8. 序列化 Pickles

反序列化 pickle 數(shù)據(jù)和 YAML 一樣糟糕。Python 類(lèi)可以聲明一個(gè) reduce 方法,該方法返回一個(gè)字符串,或一個(gè)可調(diào)用的元組以及使用 pickle 序列化時(shí)調(diào)用的參數(shù)。攻擊者可以使用它來(lái)包含對(duì)其中一個(gè)子進(jìn)程模塊的引用,以在主機(jī)上運(yùn)行任意命令。

修復(fù):

切勿使用 pickle 反序列化不受信任或未經(jīng)身份驗(yàn)證來(lái)源的數(shù)據(jù)。改用另一種序列化模式(如JSON)。

9. 使用系統(tǒng) Python 運(yùn)行時(shí)并且不修復(fù)它

大多數(shù) POSIX 系統(tǒng)都自帶有一個(gè) Python 2 版本(通常是舊版本)。

有時(shí)候 Python(即 CPython 是用 C 語(yǔ)言編寫(xiě)的) 解釋器本身存在漏洞, C 中的常見(jiàn)安全問(wèn)題與內(nèi)存分配有關(guān),所以大多是緩沖區(qū)溢出錯(cuò)誤,CPython 多年來(lái)一直存在一些溢出漏洞,每個(gè)漏洞都在后續(xù)版本中進(jìn)行了修復(fù)。也就是說(shuō),如果及時(shí)升級(jí) python 運(yùn)行時(shí),就很安全。

修復(fù):

為生產(chǎn)應(yīng)用程序安裝最新版本的 Python,并及時(shí)安裝修復(fù)更新!

10. 不修復(fù)依賴(lài)關(guān)系

類(lèi)似于不修補(bǔ) python 運(yùn)行時(shí),還需要定期修補(bǔ)依賴(lài)關(guān)系。

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

上面提到的代碼中的所有漏洞在第三方包中存在時(shí)同樣重要,這些軟件包的開(kāi)發(fā)人員每時(shí)每刻都在修復(fù)安全問(wèn)題。

修復(fù)

使用像 PyUp.io 這樣的服務(wù)來(lái)檢查更新,向應(yīng)用程序提出 pr,并運(yùn)行測(cè)試以保持軟件包是最新的。

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

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://m.specialneedsforspecialkids.com/yun/41905.html

相關(guān)文章

  • Python 中的 10 個(gè)常見(jiàn)安全漏洞以及如何避免(上)

    摘要:在考慮安全性時(shí),你需要考慮如何避免被濫用,也不例外,即使在標(biāo)準(zhǔn)庫(kù)中,也存在用于編寫(xiě)應(yīng)用的不良實(shí)踐。計(jì)時(shí)攻擊需要精確性,所以通常不能用于高延遲的遠(yuǎn)程網(wǎng)絡(luò)。由于大多數(shù)應(yīng)用程序涉及可變延遲,因此幾乎不可能在服務(wù)器上編寫(xiě)計(jì)時(shí)攻擊。 簡(jiǎn)評(píng):編寫(xiě)安全代碼很困難,當(dāng)你學(xué)習(xí)一個(gè)編程語(yǔ)言、模塊或框架時(shí),你會(huì)學(xué)習(xí)其使用方法。 在考慮安全性時(shí),你需要考慮如何避免被濫用,Python 也不例外,即使在標(biāo)準(zhǔn)庫(kù)中...

    Jingbin_ 評(píng)論0 收藏0
  • Python 中的 10 個(gè)常見(jiàn)安全漏洞以及如何避免(上)

    摘要:在考慮安全性時(shí),你需要考慮如何避免被濫用,也不例外,即使在標(biāo)準(zhǔn)庫(kù)中,也存在用于編寫(xiě)應(yīng)用的不良實(shí)踐。計(jì)時(shí)攻擊需要精確性,所以通常不能用于高延遲的遠(yuǎn)程網(wǎng)絡(luò)。由于大多數(shù)應(yīng)用程序涉及可變延遲,因此幾乎不可能在服務(wù)器上編寫(xiě)計(jì)時(shí)攻擊。 簡(jiǎn)評(píng):編寫(xiě)安全代碼很困難,當(dāng)你學(xué)習(xí)一個(gè)編程語(yǔ)言、模塊或框架時(shí),你會(huì)學(xué)習(xí)其使用方法。 在考慮安全性時(shí),你需要考慮如何避免被濫用,Python 也不例外,即使在標(biāo)準(zhǔn)庫(kù)中...

    Kaede 評(píng)論0 收藏0
  • 10個(gè)你應(yīng)該了解的Git命令(以及Git省時(shí)小竅門(mén))

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

    laoLiueizo 評(píng)論0 收藏0
  • Python和SQL Server 2017的強(qiáng)大功能

    摘要:它主要是為了允許在中使用基于的機(jī)器學(xué)習(xí),但是它可以與任何庫(kù)或框架一起使用。已經(jīng)通過(guò)啟用服務(wù)器通過(guò)使用的機(jī)器學(xué)習(xí)服務(wù)在中執(zhí)行腳本,添加到其高級(jí)分析擴(kuò)展,現(xiàn)在稱(chēng)為機(jī)器學(xué)習(xí)服務(wù)。存儲(chǔ)的實(shí)例必須安裝具有的機(jī)器學(xué)習(xí)服務(wù)要在中使用執(zhí)行腳本,應(yīng)運(yùn)行或。 Python和SQL Server 2017的強(qiáng)大功能 Python是SQL Server 2017的新功能。它主要是為了允許在SQLServer中...

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

    摘要:內(nèi)置函數(shù)們能夠被提拔出來(lái),這就意味著它們皆有獨(dú)到之處,有用武之地。因此,掌握內(nèi)置函數(shù)的用法,就成了我們應(yīng)該點(diǎn)亮的技能。報(bào)錯(cuò)包含了內(nèi)置命名空間中的名稱(chēng),在控制臺(tái)中輸入,就能發(fā)現(xiàn)很多內(nèi)置函數(shù)異常和其它屬性的名稱(chēng)。 Python 提供了很多內(nèi)置的工具函數(shù)(Built-in Functions),在最新的 Python 3 官方文檔中,它列出了 69 個(gè)。 大部分函數(shù)是我們經(jīng)常使用的,例如 p...

    AndroidTraveler 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

PiscesYE

|高級(jí)講師

TA的文章

閱讀更多
最新活動(dòng)
閱讀需要支付1元查看
<