python - 如何设置和使用 python 审计 Hook

标签 python cpython

Python 3.8 引入了 PEP 578 -- Python Runtime Audit Hooks它 promise “使 Python 运行时采取的操作对审计工具可见。”

此 pep 提供了一些用例,这些用例似乎主要与系统管理员、安全专业人员和测试框架贡献者相关。但是,据我所知,这需要对所选的 python 实现进行一些自定义选项。但是,我无法在网上找到太多记录如何设置这些选项或哪些选项可用于在哪个实现中实现的信息。

如何开始在 cpython 中使用这些钩子(Hook)?当前可用的所有 Hook 的完整列表在哪里(不建议实现)?

最佳答案

Where is a complete list of all the hooks currently available?

https://docs.python.org/3/library/audit_events.html

How do I get started using these hooks in cpython?

您可以从编写自己的钩子(Hook)开始并研究一些函数。 这是对受 Dev life blog article 启发的代码动态初始化(code.__new 事件)的审计。 您可以根据自己的需要随意操纵它。

def audit(event, args):
    if event == 'code.__new__':
        print(f'audit: {event} with args={args}')
sys.addaudithook(audit)

关于python - 如何设置和使用 python 审计 Hook ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63350394/

相关文章:

python 如何使用 imp.find_module 或者替代

python - 禁止 Python 向磁盘写入任何内容

python - 如何在 Django 样式模板中收集子评论?

python - 如何使用 Python 中的 loadmat 访问从 .mat 文件导入的结构中的字段?

Python 字典大小与对象大小效率

python - Python 2 使用什么方法打印元组?

python - 使用可变 C 数组从 C 线程调用 Python 函数

python - Odoo 追加到 one2many

Python _winapi 模块

python - 为什么集合减法和 .difference() 运行速度不同