1
2
编辑:
如果您确实需要存储它,我可能会支持类似于通常用于图像的方案,在该方案中,图像将以不可预测的方式重命名,并添加了确保它不存储在导入路径上的步骤。 |
2
4
我已经测试了一些我认为仅仅是语法检查器(不能重新定义类/函数等)的漏洞 无论如何,要让python在编译时执行任意代码 |
3
2
如果生成的代码或AST对象从未计算过,我认为您只会受到DDoS攻击。 如果您正在评估用户输入的代码,这与向每个用户提供作为webserver用户的shell访问相同。 |
4
2
还感兴趣吗?前往jinja2。沙箱:) |
5
1
是的,他们可以被恶意利用。 如果你真的想要安全的沙箱,你可以看看 PyPy's sandboxing features 但是要知道沙箱并不容易,而且可能有更好的方法来完成你想要的。 由于您已经更新了您的问题,以澄清您只是将不受信任的输入解析为AST,因此不需要对任何内容进行沙箱处理:沙箱处理是关于 执行 不受信任的代码(大多数人可能认为你的目标是通过询问沙箱)。
剩下的唯一风险是,可能有人能够编写一些病态的Python源代码,使其中一个解析器使用失控的内存/处理器时间,但资源耗尽攻击会影响所有内容,因此您只需要在必要时管理它。(例如,如果您的部署是任务关键型的,并且无法承受使用病态源代码的攻击者的拒绝服务,则可以在 resource-limited 子流程)。 |
Farid · 限制django每个客户的访问 1 年前 |
josegp · 在Nmap中-p-tag是什么意思 2 年前 |
kramer65 · 如何根据网站用户在S3上添加非公共网站文件? 6 年前 |
derf26 · 如何阻止React Web包包含包中的脚本。json 6 年前 |
user8663960 · 最好也是最简单的方法是保护登录表单的安全 6 年前 |