Каковы соображения безопасности при использовании параметров --allow-external
или --allow-all-externals
для pip
?
Разделы документации, в которых описаны эти параметры (pip install, pip wheel < / a>) очень кратки и не объясняют опасности их использования. Я также не смог найти в Интернете ни одного ресурса, который мог бы сделать это.
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
был введен не как функция безопасности, а из-за потенциальных проблем со скоростью, временем безотказной работы и удобством при работе со сторонними веб-сайтами.
Похожие вопросы
Связанные вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.