问题描述
限制/沙盒 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