使用--allow-external
或--allow-all-externals
選項pip
的安全考慮因素是什麼?`pip --allow-external`的安全考慮因素
描述這些選項的文檔部分(pip install,pip wheel)非常簡潔,並沒有解釋使用它們的危險。我也無法在因特網上找到任何資源。
使用--allow-external
或--allow-all-externals
選項pip
的安全考慮因素是什麼?`pip --allow-external`的安全考慮因素
描述這些選項的文檔部分(pip install,pip wheel)非常簡潔,並沒有解釋使用它們的危險。我也無法在因特網上找到任何資源。
我在FreeNode #pip
頻道上提問了這個問題。以下是我對那裏答覆的解釋。感謝和dstufft
從#pip
回答我的問題。直接
PyPI上:
包可以PyPI上的三種不同的方式來維持。如果軟件包託管在PyPI上,則不需要額外的開關來安裝它。連接到PyPI由HTTPS保護,因此下載被認爲是可信的。
在外部網站上,PyPI存儲相關文件的安全校驗和。在這種情況下,pip
需要--allow-external
開關繼續。雖然下載可能來自不安全的服務器,但下載的文件會根據存儲在PyPI上的安全校驗和進行檢查。因此,這種情況也被認爲是安全的。
在外部站點上,沒有PyPI存儲任何校驗和。在這種情況下,無法確保下載安全。 --allow-external
是不足以啓用安裝在這種情況下,pip
要求--allow-unverified
。
因此,單獨--allow-external
被認爲是安全開關,並且只使用--allow-unverified
是一個潛在的安全問題。這也是爲什麼pip
有--allow-all-external
選項,但沒有--allow-all-unverified
。
作爲一個附註,--allow-external
不是作爲安全功能引入的,而是由於在處理第三方網站時可能的速度,正常運行時間和便利問題。