Python
적용 가능성 및 통합
Python은 Snyk Code 및 Snyk 오픈소스(Open Source)에서 지원됩니다.
사용 가능한 통합:
SCM 가져오기
CLI 및 IDE: 앱 테스트 또는 모니터링
사용 가능한 기능:
pkg:pypi를 사용하여 앱의 SBOM 테스트pkg:pypi를 사용하여 앱의 패키지 테스트
Snyk Code용 Python
Snyk Code와 함께 사용하는 Python의 경우, 3.11 버전까지 지원됩니다. 최신 버전에서 도입된 언어 기능은 지원되지 않습니다.
Snyk Code용 Python의 경우, 다음 파일 형식이 지원됩니다: .py
사용 가능한 기능:
보고서(Reports)
사용자 정의 규칙(Custom rules)
파일 간 분석(Interfile analysis)
지원되는 프레임워크 및 라이브러리
Python의 경우, 다음 프레임워크 및 라이브러리가 지원됩니다:
AioHTTP
iopg
aiofiles
argparse
anthropic
bottle
CherryPy
Django
defusedxml
fastapi
fastMCP
flask
flask_pymongo
google.cloud.bigquery
google_generativeai
grpcio
huggingface_hub
httpx
ldap3
libxml
lxml
mistralai
modelcontextprotocol/python-sdk
mongoengine
openai
pandas
paramiko
peewee
pickle
pilyaml
pyca/cryptography
pymongo
pymssql
pyramid
psycopg
python-ldap
Python Standard Library
requests
sqlite3 (또는 pysqlite2)
sqlalchemy
turboGears
urllib
werkzeug
디렉토리 레이아웃
Snyk Code는 정확한 분석을 위해 Python 프로젝트가 표준 디렉토리 레이아웃을 따르는 것에 의존합니다. 구체적으로, Snyk Code는 디렉토리 구조를 기반으로 패키지와 모듈을 자동으로 식별하는 setuptools 자동 검색(automatic discovery)과 호환되는 프로젝트를 기대합니다. 여기에는 패키지 초기화 파일에 정의된 심볼이 올바르게 가져오기(import)되도록 보장하는 init.py 파일에 대한 지원이 포함되어, 더욱 정확하고 심층적인 분석을 가능하게 합니다.
src-layout 및 flat-layout이 모두 지원됩니다. 이러한 컨벤션을 적절히 준수하면 스캐너가 코드를 효과적으로 추적하고 정확한 결과를 제공할 수 있습니다.
Snyk 오픈소스용 Python
일부 Python 프로젝트에는 특정 버전의 Python이 필요한 종속성이 포함될 수 있습니다. 따라서 스캔 시 사용되는 Python 버전은 Snyk이 생성하는 종속성 트리에 영향을 줄 수 있습니다.
Snyk 오픈소스와 함께 사용하는 Python의 경우, 다음 Python 버전이 지원됩니다: 2.7, 3.7, 3.8, 3.9, 3.10, 3.11, 3.12, 3.13, 3.14
지원되는 패키지 관리자 및 레지스트리
지원되는 패키지 레지스트리: pypi.org
pipenv 프로젝트의 경우, Snyk은 각 Pipfile에 지정된 Python 버전 정보를 사용하여 스캔에 사용할 메이저 및 마이너 버전을 선택합니다. 예:
특정 패치 버전은 무시됩니다. Snyk은 각 시리즈의 최신 패치 버전을 사용합니다.
Pipfile에 다음이 포함된 경우 Snyk은 기본적으로 Python 3.10을 사용합니다:
Python 버전 정보 없음
메이저 버전만 있음
지원되지 않는 버전
Poetry 프로젝트의 경우 Python 버전을 지정할 필요가 없습니다. Poetry 파일에는 네이티브 도구를 실행하지 않고도 전체 종속성 트리를 구축하기에 충분한 정보가 포함되어 있습니다.
지원되는 파일 형식
Poetry:
pyproject.toml및poetry.lockPip:
requirements.txtPipenv:
pipfile및pipfile.locksetup.py:
setup.py
사용 가능한 기능
Fix PRs (Pip에서만 지원됨)
라이선스 스캐닝(License scanning)
보고서(Reports)
플랜에 따라 일부 기능을 사용하지 못할 수 있습니다. 자세한 내용은 플랜 및 가격 책정(plans and pricing)을 참조하십시오.
IDE 및 CI/CD 지원
지원되는 IDE 중 하나를 사용하여 Python 코드를 작성하는 경우, Python 매니페스트 파일을 올바르게 스캔하기 위해 추가해야 하는 몇 가지 구성이 있습니다.
프로젝트를 스캔하려면 먼저 관련 패키지 관리자를 설치하고 프로젝트에 지원되는 매니페스트 파일이 포함되어 있는지 확인해야 합니다.
운영 체제에 종속적이고 Linux에서 지원되지 않는 Python 패키지는 Snyk SCM 스캔과 호환되지 않아 오류가 발생할 수 있습니다.
가상 환경(Virtual environment) 구성
가상 환경을 사용하는 경우 다음 정보를 추가해야 합니다:
Snyk 통합 설정에서 Additional Options 필드를 찾습니다.
이 필드에
PYTHON_PATH를 추가합니다. 예:--command=.venv/bin/python.
기본적으로 Snyk IDE 통합은 IDE에 표시되는 프로젝트의 루트에서 *req*.txt 파일을 찾습니다.
여러 디렉토리 스캔
프로젝트 루트 내의 다른 디렉토리에 매니페스트 파일이 있는 경우, Snyk은 지시가 없는 한 이를 식별할 수 없습니다.
Snyk 통합 설정에서 Additional Options 필드를 찾습니다. 재귀 검색(recursive search)을 활성화하고 Additional Options 필드에 --all-projects 옵션을 추가합니다.
각 디렉토리에 서로 다른 가상 환경이 필요한 경우, Snyk 스캔은 종속성 감지를 위해 단일 가상 환경을 사용하므로 실패할 수 있습니다. 이러한 경우 Snyk은 각 프로젝트 디렉토리의 모든 종속성에 대한 취약점 세부 정보를 수집하기 위해 IDE 대신 CLI 또는 SCM 통합을 사용할 것을 권장합니다.
Last updated