2014-01-09 49 views

回答

23

我在FreeNode #pip頻道上提問了這個問題。以下是我對那裏答覆的解釋。感謝和dstufft#pip回答我的問題。直接

  1. PyPI上:

    包可以PyPI上的三種不同的方式來維持。如果軟件包託管在PyPI上,則不需要額外的開關來安裝它。連接到PyPI由HTTPS保護,因此下載被認爲是可信的。

  2. 在外部網站上,PyPI存儲相關文件的安全校驗和。在這種情況下,pip需要--allow-external開關繼續。雖然下載可能來自不安全的服務器,但下載的文件會根據存儲在PyPI上的安全校驗和進行檢查。因此,這種情況也被認爲是安全的。

  3. 在外部站點上,沒有PyPI存儲任何校驗和。在這種情況下,無法確保下載安全。 --allow-external是不足以啓用安裝在這種情況下,pip要求--allow-unverified

因此,單獨--allow-external被認爲是安全開關,並且只使用--allow-unverified是一個潛在的安全問題。這也是爲什麼pip--allow-all-external選項,但沒有--allow-all-unverified

作爲一個附註,--allow-external不是作爲安全功能引入的,而是由於在處理第三方網站時可能的速度,正常運行時間和便利問題。