我有一个网站,用户输入数学方程式(表达式),然后根据网站提供的数据(常数)评估这些方程式.所需的数学运算,包括符号,算术运算min(),max()以及其他一些基本功能.一个示例等式可以是:
max(a * b + 100, a / b - 200)
Run Code Online (Sandbox Code Playgroud)
人们可以简单地eval()使用Python,但我们都知道这会导致网站泄露.进行数学方程式评估的安全方法是什么?
Python有什么数学方程式解析和评估引擎
如果选择使用Python本身来评估表达式,那么任何Python沙箱都会限制Python,因此只有用户供应商操作符和函数可用.完全成熟的Python,如定义函数,应该完全禁用.子流程是可以的(参见PyPy沙箱).特别是,应该关闭用于利用内存和CPU使用的循环和其他漏洞.
任何其他方法,例如使用命令行二进制(bc)?