这是一个非常奇怪的用例,但是,我们正在开发的项目需要一种方法来存储用户定义的函数并在视图中运行它们。功能代码将存储在模型的TextField
中。
理想情况下,这些函数本身非常简单,主要涉及算术运算,if-else块和循环。这些功能也可以使用任何语言,只要Python能够以某种方式运行它们即可。
一个明显的问题是可能的安全问题,因为始终最好假定代码将来自不受信任的来源。无论如何,我们已经考虑过以下可能的解决方案:
eval()
运行它们。我最好的选择是什么?显然,前两个选项非常不安全,而第三个选项则难以实施。有更好的方法吗?