如何执行用户通过web应用程序输入的字符串python

如何执行用户通过web应用程序输入的字符串python,python,exec,eval,Python,Exec,Eval,我们有一个webApplication(.net)和CalculationEngine(Python) WebApplication:向用户显示结果和Python公式/并编写Python输入公式 计算引擎:计算公式 目标解决方案是:Web应用程序发送一个json文件,其中包含要计算(或执行)的代码 你能给我一个关于Exec/eval的选项吗 示例公式 def calcul_Inf_monthly_rates(Input) : try : output=np.arr

我们有一个webApplication(.net)和CalculationEngine(Python)

  • WebApplication:向用户显示结果和Python公式/并编写Python输入公式
  • 计算引擎:计算公式
  • 目标解决方案是:Web应用程序发送一个json文件,其中包含要计算(或执行)的代码

    你能给我一个关于Exec/eval的选项吗

    示例公式

    def calcul_Inf_monthly_rates(Input) :    
        try :
            output=np.array([(1+v)**(1/12)-1 for v in Input])
        except:
            logging.error("Inf_monthly_rates : Error Calcul")
            output=[]
        finally:
            return output
    

    假设您的json看起来像:

    json_func = """{"func": len}"""
    # I used a simple len function for example
    
    可以通过以下方式使用evel:

    executed_func = eval(json_func)["func"]
    # now you can run executed_func with params
    
    print(executed_func("Hello")) # will output: 5
    
    

    那么Web应用程序将发送json格式的Python代码,您希望Python程序执行它吗?我们可以看到一个示例json文件吗?您希望用户能够输入一行python代码,然后在服务器上执行?看到这种方法有什么问题吗?检查代码是一项非常困难的任务,它不是您最初问题的一部分。为了避免安全漏洞,您必须重新考虑系统的设计。一种方法是将功能封装到已经制作好的功能中,让用户选择其中一个。确切地说,我要求考虑设计、解决方案,与用户共享github。