TGTGInsighttelegram intelligenceLIVE / telegram public index
← Python Заметки

TGINSIGHT SIMILAR POSTS

Најди сличен содржај

Изворен канал @pythonotes · Post #224 · 12 мар.

Для Python3.8 в PEP0578 добавили функционал аудита Runtime операций. Это позволяет выполнять хуки (функции) при возникновении определённых событий в интерпретаторе. Этот функционал разработан, прежде всего, для специалистов по безопасности. Аудит позволяет перехватывать различные действия и проверять их допустимость. Полный список стандартных аудит-ивентов можно посмотреть здесь. Из названий становится ясно что мы можем перехватить. Например, мы можем перехватить факт открытия файла (open), импорта модуля (import), копирование файла (shutil.copyfile), запуск процесса (subprocess.Popen) и тд. Как минимум мы можем залогировать данное событие, как максимум, вызвать аварийное завершение программы. Примеры использования: ▫️Представим, что после разработки и долгих тестирований веб сервиса вы могли где-то оставить функцию ручного ввода данных в консоль. На продакшене такое недопустимо. С помощью аудита можно вызвать исключение перехватив ивент builtins.input ▫️С помощью ивента socket.getaddrinfo можно определить на какие сайты юзер заходил с помощью вашего приложения. ▫️Ивент exec позволит проверить загруженный объект кода перед его исполнением. Например выявить потенциально опасный код, или оставленные API ключи в строковых переменных. Как добавить свой хук? Для первого теста выполните такой код в самом начале работы приложения import sys def hook(event, args): print(f'EVENT: {event}{args}') sys.addaudithook(hook) Каждый хук вызывается для всех событий, поэтому мы можем с помощью одного хука увидеть всё что происходит в интерпретаторе. Теперь давайте посмотрим какие web-коннекты создаются при работе нашего кода. Для запросов используем requests. import sys import requests def socket_hook(event, args): if event == 'socket.getaddrinfo': print(args[0]) sys.addaudithook(socket_hook) requests.get('https://google.com') В аутпуте вы увидите домен, на который был сделан запрос. А так же: ▫️есть платформозависимые хуки (например взаимодействие с winapi) ▫️можно писать хуки на Си ▫️так как это мера для обеспечения безопасности, нет способа удалить хуки после добавления. Напоминаю, доступно в Python3.8+ #pep#tricks

Hashtags

Резултати

Пронајдени 4 слични објави

Глобално пребарување

Futplanet

@Fut_planet · Post #11495 · 27.05.2024 г., 19:00

Pep Guardiola dejará el cargo de entrenador del Manchester City el próximo verano. 📱 Jack Gaughan. @Fut_planet⚜️#Pep👔#City🏴󠁧󠁢󠁥󠁮󠁧󠁿

Hashtags

sudo recast

@sudo_recast · Post #918 · 17.04.2025 г., 09:47

A useful command when you encounter conflicts while cherry-picking: tig HEAD $(git rev-parse CHERRY_PICK_HEAD 2>/dev/null) -- $(git diff --name-only --diff-filter=U | head -1) #tricks@sudo_recast

Hashtags

AIGC

@aigcrubbish · Post #242 · 09.03.2026 г., 14:45

[$] Inspecting and modifying Python types during type checking Python 的静态类型系统有其独特之处:类型注解在运行时是可访问的,但默认不会被求值,其含义由外部类型检查器赋予。这些注解通常使用内置 `typing` 模块中的辅助工具,主流类型检查器对其含义有基本共识。然而,现有的类型系统在描述真实 Python 程序中常见的动态元编程模式时,能力仍显不足。PEP 827("类型操作")旨在为 Python 的类型系统增加新能力,以解决此问题,但社区对该提案的讨论意见不一。 原文链接:https://lwn.net/Articles/1061083/ #Python#类型系统#PEP#编程语言设计 #AIGC Read more