--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
チャンネルでこの質問をしました。以下は私がそこに持っている回答の私の解釈です。私の質問に答えるにはagronholm
とdstufft
から#pip
に感謝します。 PyPIに直接
:
パッケージは、3つの異なる方法では、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
は、セキュリティ機能としてではなく、サードパーティのWebサイトを処理する際の速度、稼働時間および利便性の問題の可能性があるため導入されました。