草庐IT

javascript - 为什么 JavaScript 的 eval 需要括号来评估 JSON 数据?

我已经(艰难地)了解到我需要在JSON数据周围添加括号,如下所示:stuff=eval('('+data_from_the_wire+')');//wheredata_from_the_wirewas,forexample{"text":"hello"}(至少在Firefox3中)。这背后的原因是什么?我讨厌在不了解幕后内容的情况下编写代码。 最佳答案 eval接受一系列Javascript语句。Javascript解析器将出现在语句中的“{”标记解释为block的开始,而不是对象字面量的开始。当您将文字括在这样的括号中时:({da

ruby-on-rails - (JSON::ParserError) "{N}: unexpected token at ' alihack<%eval 请求(\"alihack.com\")%>

我有关于RubyonRails3.2.11和Ruby1.9.3的网站。什么会导致以下错误:(JSON::ParserError)"{N}:unexpectedtokenat'alihack我在日志中有几个这样的错误。他们都试图评估请求(\“alihack.com\”)。部分日志文件:"REMOTE_ADDR"=>"10.123.66.198","REQUEST_METHOD"=>"PUT","REQUEST_PATH"=>"/ali.txt","PATH_INFO"=>"/ali.txt","REQUEST_URI"=>"/ali.txt","SERVER_PROTOCOL"=>"HT

ruby-on-rails - (JSON::ParserError) "{N}: unexpected token at ' alihack<%eval 请求(\"alihack.com\")%>

我有关于RubyonRails3.2.11和Ruby1.9.3的网站。什么会导致以下错误:(JSON::ParserError)"{N}:unexpectedtokenat'alihack我在日志中有几个这样的错误。他们都试图评估请求(\“alihack.com\”)。部分日志文件:"REMOTE_ADDR"=>"10.123.66.198","REQUEST_METHOD"=>"PUT","REQUEST_PATH"=>"/ali.txt","PATH_INFO"=>"/ali.txt","REQUEST_URI"=>"/ali.txt","SERVER_PROTOCOL"=>"HT

javascript - JSON.parse 与 eval()

我的SpiderSense警告我,使用eval()解析传入的JSON是个坏主意。我只是想知道JSON.parse()-我认为它是JavaScript的一部分,而不是特定于浏览器的函数-是否更安全。 最佳答案 如果使用eval,您更容易受到攻击:JSON是Javascript的子集,而json.parse只解析JSON,而eval会对所有JS表达式敞开大门。 关于javascript-JSON.parse与eval(),我们在StackOverflow上找到一个类似的问题:

javascript - JSON.parse 与 eval()

我的SpiderSense警告我,使用eval()解析传入的JSON是个坏主意。我只是想知道JSON.parse()-我认为它是JavaScript的一部分,而不是特定于浏览器的函数-是否更安全。 最佳答案 如果使用eval,您更容易受到攻击:JSON是Javascript的子集,而json.parse只解析JSON,而eval会对所有JS表达式敞开大门。 关于javascript-JSON.parse与eval(),我们在StackOverflow上找到一个类似的问题:

python - 使用 python 的 eval() 与 ast.literal_eval()

我遇到了一些代码的情况,其中eval()是一种可能的解决方案。现在,我以前从未使用过eval(),但是,我发现了大量关于它可能导致的潜在危险的信息。也就是说,我对使用它非常谨慎。我的情况是我有用户给出的输入:datamap=input('Providesomedatahere:')datamap需要是字典。我四处搜索,发现eval()可以解决这个问题。我认为我可以在尝试使用数据之前检查输入的类型,这将是一种可行的安全预防措施。datamap=eval(input('Providesomedatahere:')ifnotisinstance(datamap,dict):return我通读

python - 使用 python 的 eval() 与 ast.literal_eval()

我遇到了一些代码的情况,其中eval()是一种可能的解决方案。现在,我以前从未使用过eval(),但是,我发现了大量关于它可能导致的潜在危险的信息。也就是说,我对使用它非常谨慎。我的情况是我有用户给出的输入:datamap=input('Providesomedatahere:')datamap需要是字典。我四处搜索,发现eval()可以解决这个问题。我认为我可以在尝试使用数据之前检查输入的类型,这将是一种可行的安全预防措施。datamap=eval(input('Providesomedatahere:')ifnotisinstance(datamap,dict):return我通读

linux - 为什么在 Bash 中应该避免使用 eval,我应该使用什么来代替?

一次又一次,我使用eval在StackOverflow上看到Bash答案并且答案被抨击,双关语,因为使用了这种“邪恶”的结构。为什么是eval这么邪恶?如eval不能安全使用,应该用什么代替? 最佳答案 这个问题远不止表面上的问题。我们将从显而易见的开始:eval有可能执行“脏”数据。脏数据是任何没有被重写为安全使用情况-XYZ的数据;在我们的例子中,它是任何没有被格式化以便可以安全评估的字符串。乍一看,清理数据似乎很容易。假设我们抛出一个选项列表,bash已经提供了一种很好的方法来清理单个元素,以及另一种将整个数组清理为单个字符串

linux - 为什么在 Bash 中应该避免使用 eval,我应该使用什么来代替?

一次又一次,我使用eval在StackOverflow上看到Bash答案并且答案被抨击,双关语,因为使用了这种“邪恶”的结构。为什么是eval这么邪恶?如eval不能安全使用,应该用什么代替? 最佳答案 这个问题远不止表面上的问题。我们将从显而易见的开始:eval有可能执行“脏”数据。脏数据是任何没有被重写为安全使用情况-XYZ的数据;在我们的例子中,它是任何没有被格式化以便可以安全评估的字符串。乍一看,清理数据似乎很容易。假设我们抛出一个选项列表,bash已经提供了一种很好的方法来清理单个元素,以及另一种将整个数组清理为单个字符串

linux - Bash中的 'eval'命令及其典型用途

看完Bashmanpages和关于thispost,我仍然无法理解eval命令的确切作用以及它的典型用途。例如,如果我们这样做:$set--onetwothree#Sets$1$2$3$echo$1one$n=1$echo${$n}##Firstattempttoecho$1usingbracketsfailsbash:${$n}:badsubstitution$echo$($n)##Secondattempttoecho$1usingparenthesesfailsbash:1:commandnotfound$evalecho\${$n}##Thirdattempttoecho$1u