问题标签 [eval]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
9 回答
17984 浏览

javascript - eval 是邪恶的……那我应该用什么代替呢?

ajax 请求返回一个标准 JSON 数组,其中填充了我的用户输入。输入已经过清理,使用 eval() 函数,我可以轻松创建我的 javascript 对象并更新我的页面......

所以这就是问题所在。无论我多么努力地清理输入,我都宁愿不使用 eval() 函数。我已经检查了谷歌的方法来使用“没有 eval 的 AJAX 中的 JSON”并且已经运行了一堆不同的方法......

我应该使用哪一个?是否有一种标准的、经过验证的安全方式来执行此操作?

0 投票
2 回答
820 浏览

c# - 如何编写用户可扩展的代码?

作为 perl 程序员,我可以将字符串评估为代码 如果我愿意,我可以在 C# 中做同样的事情吗(使用字符串或其他包含用户输入的对象)?

我想要完成的是创建一个对象,其中它的方法可以在我的源代码中预定义,或者可以由用户在运行时通过输入表示方法或 SQL 查询的 C# 代码的字符串来定义。方法调用应始终将其标量值作为字符串返回,我相信最好提供一些预定义的“系统”变量以在方法调用中使用,并提供一些“清理”代码来验证是否实际返回了字符串.

伪 - 结构

我想到的架构基本上会实时收集这些,并根据用户的请求将它们添加到用户想要显示的统计信息列表中。定义的统计数据可以保存到文件中,并在初始化期间加载到主程序中。这样,用户就不必不断重新定义所需的统计数据。需要编辑/更新/删除统计信息。

如果这成功了,那么我(程序员)就不必在每次有人决定他们有一条他们想要在他们的统计板上显示的新信息时都去添加新代码,而我还没有为其编写代码。

关于从哪里开始阅读以在 C# 中完成此任务的任何想法?

此功能的目的是显示正在运行的系统/数据库的统计信息的程序。在设计时不一定知道要观察的值,也不一定知道如何定义检索所需的值。我想允许用户定义任何我为系统预编码之外的任何统计信息。

0 投票
6 回答
18776 浏览

python - Python eval() 在不受信任的字符串上的安全性?

如果我正在使用 eval() 评估 Python 字符串,并且有一个类似的类:

如果我不信任该字符串,会有哪些安全风险?尤其:

  1. eval(string, {"f": Foo()}, {})不安全吗?也就是说,您可以从 Foo 实例访问 os 或 sys 或不安全的东西吗?
  2. eval(string, {}, {})不安全吗?也就是说,我可以完全从 len 和 list 等内置函数访问 os 或 sys 吗?
  3. 有没有办法让内置函数在 eval 上下文中根本不存在?

有一些不安全的字符串,例如“[0] * 100000000”我不在乎,因为在最坏的情况下它们会减慢/停止程序。我主要关心保护程序外部的用户数据。

显然,eval(string)在大多数情况下,没有自定义词典是不安全的。

0 投票
6 回答
3344 浏览

php - 我应该使用 eval() 还是 call_user_func()?

我正在开发一个 php 项目,我想运行从 MySQL 数据库中获取的代码。没有机会注入不安全的代码,所以我唯一担心的是性能。我应该使用 eval() 以便我可以直接运行代码,还是解析它以便 call_user_func() 运行它?

例如,如果我获取的代码是“myfunc(1,2,3); anotherFunc(3,2,1);”
我可以直接 eval() 来运行代码。

但是对于 call_user_func(),我必须解析字符串才能运行它。那么在这种情况下使用哪个更好的功能?

0 投票
5 回答
5729 浏览

actionscript-3 - AS3中的评估公式?

我正在玩一些 ActionScript。我想要的是我可以从一个字符串中显示一个数学函数。

例如,在我的工作 python 脚本中,我做了这样的事情:

我想将此移植到 ActionScript,但似乎自版本 3 以来不再有 eval。无论如何我如何计算我的函数值?

0 投票
4 回答
2744 浏览

function - 如何从 Clojure 中的字符串定义函数?

我想这样做(在 REPL 或任何地方)

然后能够做到

或者,如果有任何其他方法可以从宏中的自定义字符串创建 defn,您能否将我推向正确的方向?

0 投票
2 回答
1533 浏览

ruby - Ruby eval 在 irb 和文件中的行为不同

此代码适用于 irb:

但是,当我尝试执行与 ruby​​ 脚本相同的代码时,出现以下错误:

谁能解释为什么?

0 投票
2 回答
684 浏览

c# - 在 ASP.NET 中使用 ItemTemplate 参数执行方法

我需要ItemTemplate在我的DataList. 如何格式化页面中的方法以正确使用Eval?

该方法接受一个int作为参数。

0 投票
2 回答
18205 浏览

python - Python 的 eval() 和 globals()

我正在尝试使用 eval() 执行许多函数,并且我需要为它们创建某种运行环境。文档中说您可以将全局变量作为第二个参数传递给 eval()。

但这似乎不适用于我的情况。这是简化的示例(我尝试了两种方法,声明变量 global 和使用 globals(),但都不起作用):

文件script.py

文件test.py

我得到:

NameError:未定义全局名称“test_variable”。

我应该怎么做才能将其传递test_variablemy_func()?假设我不能将它作为参数传递。

0 投票
2 回答
383 浏览

ruby - Ruby:在评估中引发的异常中不需要的上下文

Ruby Exceptions 中直接引发的消息和从 evals 中引发的消息之间似乎存在奇怪的差异。例如,下面的代码:

产生以下输出:

没有使用正则表达式将其分出,在第二种情况下,有什么方法可以在没有上下文的情况下引发异常?