【问题标题】:javascript "for (;;);" structure [duplicate]javascript "for (;;);"结构[重复]
【发布时间】:2011-10-20 14:04:03
【问题描述】:

可能重复:
Empty “for” loop in Facebook ajax
what does AJAX call response like for (;;); { json data } mean?

在分析一些 facebook ajax 请求正文时,我注意到每个代码都以 for (;;);,后跟一个 json 对象

类似

for (;;); {"a":1,"b":"\u003cdiv"}

我搜索了这个结构,但一无所获。

每个 ajax 响应开头出现这种“for”结构的原因可能是什么?

【问题讨论】:

  • 根据 javascript 语法,for 无限循环
  • 这可能是为了防止 XSS - for 之后的代码永远不会被执行...
  • 这是另一个问题的重复,我看看能不能找到。
  • @JamesAllardice:好像有几个。

标签: javascript


【解决方案1】:

像这样的for(注意括号后没有';'):

for (;;)

表示无限循环,其中执行的语句是括号之间的语句。

取而代之的是这样的:

for (;;);

表示没有语句的无限循环。

【讨论】:

    【解决方案2】:

    出于安全考虑,它阻止了其他试图拦截其 AJAX 调用的客户端。 基本上,如果您立即评估它,您的浏览器会因为无限循环而崩溃,它们只是添加了另一层(ob)安全性。

    您无需担心。

    【讨论】:

    • 这对我来说并不安全。甚至很难绕过。
    • 现在我知道了,是什么阻止我删除响应的第一部分并评估其余部分?
    • 它的东西,它让一些脚本小子离开。
    • @Felix,绝对没有,这就是 Facebook 最有可能自己做的事情。但是,该参数可用于每种类型的安全性,这会阻止您仅 NOP 退出安全例程。你必须从某个地方开始。
    • 我并不是说您对添加它的原因有误,但它不会阻止任何人。如果您有意愿弄清楚如何拦截它,那么在您找出原因之前,它不必崩溃超过几次..
    猜你喜欢
    • 1970-01-01
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-13
    • 1970-01-01
    • 2016-09-23
    相关资源
    最近更新 更多