Python вопросы с собеседований
25.5K subscribers
563 photos
30 videos
17 files
445 links
Вопросы с собеседований по Python

@workakkk - админ

@machinelearning_interview - вопросы с собесдований по Ml

@pro_python_code - Python

@data_analysis_ml - анализ данных на Python

@itchannels_telegram - 🔥 главное в ит

РКН: clck.ru/3FmrFd
Download Telegram
🐳 Что если вам нужно запустить чужой (возможно небезопасный) код?

Представьте: вам прислали бинарник, Python-скрипт или npm-пакет, и его надо выполнить.
Вы не знаете, что внутри — а вдруг там rm -rf /, попытка выйти из контейнера, майнер или установка root-доступа?

🔥 Первый инстинкт: запустить в Docker. Кажется, контейнер спасёт?
⚠️ На самом деле — не всегда.


🛑 Docker ≠ песочница
Контейнеры по умолчанию не изолированы от ядра, сетей и сокетов хоста.
Даже простое docker run -it ubuntu запускает процесс с root-доступом внутри контейнера.

🛡️ Что делать, если код небезопасен:


# Запуск без root-доступа
docker run --user 1000:1000 my-image

# Только для чтения
docker run --read-only my-image

# Удалить все cap-привилегии ядра
docker run --cap-drop=ALL my-image

# Использовать seccomp-профиль
docker run --security-opt seccomp=default.json my-image

# Отключить сеть
docker run --network=none my-image


Также стоит:
• Настроить AppArmor / SELinux
• Запретить монтирование Docker сокета
• Ограничить доступ к /proc, /sys

💡 Вывод:
Docker — это удобный инструмент упаковки, но не синоним безопасной изоляции.
Если запускаете сторонний или user-generated код (плагины, CI-скрипты, sandbox-сервисы) — относитесь к нему как к потенциально опасному.

Безопасность — это не "чеклист", а постоянная практика.

#Docker #Security #Sandbox #DevOps #Isolation
👍143🔥3
🔥 Полезный Python-трюк для работы с сетями: `ipaddress` в стандартной библиотеке

Когда нужно быстро проверить IP-адреса, маски подсетей или принадлежность хоста сети — не обязательно тянуть внешние пакеты. В Python уже есть мощный модуль ipaddress.


import ipaddress

# Создаём сеть
net = ipaddress.ip_network("192.168.1.0/24")

# Проверяем, входит ли IP в сеть
print(ipaddress.ip_address("192.168.1.42") in net) # True
print(ipaddress.ip_address("10.0.0.5") in net) # False

# Перебираем все адреса подсети
for ip in net.hosts():
print(ip)
break # выведет первый адрес

# Работаем с IPv6 так же просто
ipv6 = ipaddress.ip_network("2001:db8::/32")
print(ipaddress.ip_address("2001:db8::1") in ipv6) # True


📌 Чем полезно

Проверка принадлежности адреса подсети

Удобный парсинг IPv4 и IPv6

Генерация диапазонов IP

Всё встроено в Python — никаких сторонних зависимостей

🔥 Отлично подходит для написания сетевых тулзов, firewall-скриптов, DevOps-автоматизации и тестов.

#Python #Networking #Tips #DevOps
👍63