如何对 Python 程序进行安全加固?

问题描述

限制/沙盒 Python 程序的最佳方法是什么?

如何将 Python 程序限制为只能访问一个网站并打印到 stdout

我正在使用 pyseccomp 来限制程序可以进行的系统调用列表,但我在网上找到的文档很少,不得不将 32 个系统调用列入白名单才能使程序正常工作(包括不受限制的 write() 和 { {1}} 仅限于只读(但我不知道有什么方法可以将其限制为特定路径)。

openat() 是用于此目的的正确工具吗? IE。它是最安全的,但有少量开销的限制(例如,无法添加几秒钟、数百 MB 的 RAM 或无法使用 pip3 安装的库)。有没有更好的工具可以让 Python 只读取库,而不能读取其他文件


我的程序使用 pandas.read_html 来解析网站上的表格,然后我有一个功能可以在打印之前清理数据(使用 seccomp 过滤掉任何与 RegEx 不匹配的条目)到re.match(...)。它将始终在 Linux 上运行。

解决方法

您尝试安装此模块

pip install pyseccomp
import pyseccomp