asp.net - 作为 IronPython 执行用户输入的表达式是否安全

标签 asp.net security ironpython dynamic-language-runtime

我正在开发一个大型 ASP.NET 软件产品。我们希望允许用户为某些字段输入表达式而不是常量。通常类似于:

(Price * 1.175) + 25

显而易见的解决方案似乎是嵌入 IronPython,创建一个范围,传入“价格”(和其他)变量,然后将上述内容作为 IronPython 代码执行。

但是,没有什么可以阻止用户进入:

1 / 0

def func1():
    func1()
func1()

import System.IO
File.Delete(....)

但是,如果我捕获所有异常并在具有 Internet 权限集的应用程序域中运行 IronPython 代码,我安全吗?

最佳答案

您通过指出没有什么可以阻止用户输入有效代码来回答您自己的问题。永远不要相信用户输入。曾经。

关于asp.net - 作为 IronPython 执行用户输入的表达式是否安全,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1902453/

相关文章:

javascript - 从 postMessage 事件接收到的 eval() 代码有多安全?

python - 尝试在 Python 中将一种对象类型转换为另一种对象类型

c# - 从用户控件更改父页面的标题

asp.net - 如何判断用户帐户是否已使用 ASP.Net 表单例份验证登录?

javascript - 在我的站点中实现了 CSP,但第 3 方库使用内联 javascript。我可以有选择地允许 'unsafe-inline' 吗?

java - 如何从客户端更改 HttpServletRequest 中的 IP?

ironpython - 在 Spotfire 中选择数据表列表

c# - 无法将 C# 字典作为参数传递给 ironPython 方法

c# - 如何从用户控件访问页面控件?

c# - 如何使用 C#/ASP.Net 在 responseText 中传回错误