Как избежать путаницы с зависимостями перед импортом библиотек в PythonPython

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как избежать путаницы с зависимостями перед импортом библиотек в Python

Сообщение Anonymous »

Что такое путаница в зависимости?

Код: Выделить всё

Dependency confusion
— это атака по цепочке поставок, при которой вредоносный пакет загружается в общедоступный репозиторий с тем же именем, что и внутренний пакет. При ошибочном использовании это может привести к несанкционированному выполнению кода.
Я пытаюсь автоматизировать процесс, чтобы выявить путаницу в зависимостях в моем коде для импортированной библиотеки.

Код: Выделить всё

import sys
import requests
from packaging import version

def check_package_before_import(package_name):
if package_name in sys.stdlib_module_names:
return None, True

try:
pypi_url = f"https://pypi.org/pypi/{package_name}/json"
response = requests.get(pypi_url)

if response.status_code == 404:
return f"SECURITY ALERT: Package '{package_name}' not found on PyPI!", False

if response.status_code == 200:
return None, True

except Exception as e:
return f"Error checking package '{package_name}': {str(e)}", False

return None, True

def safe_import(package_name):
warning, is_safe = check_package_before_import(package_name)

if warning:
print(warning)
return None

if is_safe:
try:
module = __import__(package_name)
return module
except ImportError as e:
print(f"Failed to import {package_name}: {str(e)}")
return None
return None

if __name__ == "__main__":
np = safe_import('numpyy')
pd = safe_import('pandas')
suspicious = safe_import('totally-fake-package')
Я здесь каждый раз проверяю импортированные пакеты с помощью pypi и проверяю их подлинность или что-то в этом роде. У моего кода есть несколько недостатков.
  • HTTP-запрос к PyPI — каждый раз требовался Интернет для проверки зависимостей.
  • Внутренние пакеты компании, не использующие PyPI, будут заблокированы
Печатается

Код: Выделить всё

================= RESTART: C:\Users\Bhargav\Downloads\getid.py =================
SECURITY ALERT: Package 'numpyy' not found on PyPI!
SECURITY ALERT: Package 'totally-fake-package' not found on PyPI!
Я слишком много думаю? Есть ли способ справиться с такими атаками? Я просмотрел этот пост stackoverflow. Аналогичный пост. Но здесь речь идет о ручном процессе. Я хочу сделать какую-то автоматизацию.

Подробнее здесь: https://stackoverflow.com/questions/791 ... -in-python
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Проблема с импортом библиотек на qiskit (python) python и проблемой импорта из qiskit
    Anonymous » » в форуме Python
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с зависимостями библиотек Tkinter в коде на Ubuntu 22.04.1 (Linux)
    Anonymous » » в форуме Python
    0 Ответы
    9 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с зависимостями библиотек Tkinter в коде на Ubuntu 22.04.1 (Linux)
    Anonymous » » в форуме Linux
    0 Ответы
    16 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с зависимостями библиотек Tkinter в коде на Ubuntu 22.04.1 (Linux)
    Anonymous » » в форуме Python
    0 Ответы
    5 Просмотры
    Последнее сообщение Anonymous
  • Проблемы с зависимостями библиотек Tkinter в коде на Ubuntu 22.04.1 (Linux)
    Anonymous » » в форуме Linux
    0 Ответы
    10 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Python»