Ответ 1
Я задал этот вопрос на канале FreeNode #pip
. Ниже приводится моя интерпретация ответов, которые у меня есть. Благодарим меня за agronholm
и 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
был представлен не как функция безопасности, а из-за потенциальной скорости, времени безотказной работы и удобства при работе с сторонними веб-сайтами.