[Python] `pip --allow-external`의 보안 고려 사항


Answers

FreeNode #pip 채널에서이 질문을했습니다. 다음은 내가 가지고있는 대답에 대한 나의 해석입니다. 제 질문에 대답 해 agronholmdstufft 에게 감사드립니다.

패키지는 다음 세 가지 방법으로 PyPI에서 관리 할 수 ​​있습니다.

  1. 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 는 보안 기능으로 도입 된 것이 아니라 타사 웹 사이트를 처리하는 동안 잠재적 인 속도, 가동 시간 및 편의 문제로 인해 도입되었습니다.

Question

pip --allow-external 또는 --allow-all-externals 옵션을 사용할 때 보안 고려 사항은 무엇입니까?

이 옵션들이 설명되어있는 문서 섹션 ( pip install , pip wheel )은 매우 간결하며 사용법의 위험성을 설명하지 않습니다. 나는 또한 그렇게 할 인터넷 자원을 찾을 수 없었다.