Tag: 评估

Eval是邪恶的…那我应该用什么来代替呢?

ajax请求返回一个标准的JSON数组,填充我的用户input。 input已被消毒,并使用eval()函数,我可以很容易地创build我的JavaScript对象,并更新我的网页… 所以这是问题。 无论我如何努力消毒input,我宁愿不使用eval()函数。 我已经检查谷歌的方式来使用“没有eval的AJAX的JSON”,并跑了一堆不同的方法… 我应该使用哪一个? 有没有一个标准的,可靠的方法来做到这一点?

为什么eval('('+ jsonString +')')在parsingjsonstring时需要打开引号和括号

你能告诉我这个特定的语法结构的原因吗? eval('(' + jsonString+ ')') parsingjson文本时。 克罗克福德说:“ 文本必须包装在parens中,以避免绊住JavaScript语法的歧义 。” 这里 。 这意味着什么? 我们可以避免吗?

将eval()限制在一个狭窄的范围内

我有一个JavaScript文件,读取另一个文件,可能包含需要eval()编辑的JavaScript片段。 脚本片段应该符合严格的JavaScript子集,限制了他们可以做什么以及哪些variables可以更改,但是我想知道是否有某种方法可以通过阻止eval在全局范围中看到variables来强制执行此操作。 像下面这样: function safeEval( fragment ) { var localVariable = g_Variable; { // do magic scoping here so that the eval fragment can see localVariable // but not g_Variable or anything else outside function scope eval( fragment ); } } 实际的代码不需要看起来像这样 – 我打开任何和所有怪异的技巧与闭包等,但我想知道这是甚至可能的 。

从PHP中的variables实例化类?

我知道这个问题听起来很模糊,所以我会用一个例子来说明一下: $var = 'bar'; $bar = new {$var}Class('var for __construct()'); //$bar = new barClass('var for __construct()'); 这是我想要做的。 你会怎么做? 我可以使用eval()像这样: $var = 'bar'; eval('$bar = new '.$var.'Class(\'var for __construct()\');'); 但是我宁愿远离eval()。 有没有办法做到这一点没有eval()?

在Python中使用eval?

Python中有一个eval()函数,我在玩的时候偶然发现了。 当我们不需要这个function的时候,除了可能是语法糖之外,我不能想到这种情况。 任何人都可以举个例子吗?

用math运算符评估C#string

有没有简单的方法来评估像"(4+8)*2"这样的string,所以你会得到24的int值? 还是有很多工作需要做到这一点…?

最好和最短的方式来评估mathexpression式

有很多algorithm来评估expression式,例如: 通过recursion下降 调车码algorithm 逆波兰记法 有什么办法来评估任何使用C#.netreflection或其他现代.NET技术的mathexpression式?

Python的eval()在不受信任的string上的安全性?

如果我正在使用eval()来评估一个Pythonstring,并且有一个如下所示的类: class Foo(object): a = 3 def bar(self, x): return x + a 如果我不信任string,有什么安全风险? 尤其是: 是eval(string, {"f": Foo()}, {})不安全? 也就是说,你可以达到OS或SYS或从Foo实例不安全? eval(string, {}, {})不安全? 也就是说,我可以完全从内置的len和list到os或sys吗? 有没有一种方法可以让内置的东西在评估环境中不存在? 有一些不安全的string,如“[0] * 100000000”,我不在乎,因为最坏的情况是他们放慢/停止程序。 我主要关心保护程序外部的用户数据。 显然,在大多数情况下,没有自定义字典的eval(string)是不安全的。

(1,eval)('this')vs eval('this')在JavaScript中?

我开始阅读JavaScript模式 ,一些代码困惑了我。 var global = (function () { return this || (1, eval)('this'); }()); 这是我的问题: Q1: (1,eval)=== eval? 为什么它的作品? 怎么样? Q2:为什么不呢? var global = (function () { return this || eval('this'); }()); 要么 var global = (function () { return this; }()); 谁能告诉我? 谢谢。

如何把一个string公式转换成一个“真实”的公式

我在单元格中有0,4*A1 (作为string)。 怎样才能把这个“string公式”转换成一个真实的公式,并在另一个单元格中计算它的值?