相关疑难解决方法(0)

理解Rails真实性令牌

我正在遇到有关Rails中的Authenticity Token的一些问题,因为我现在已经多次了.

但我真的不想只是解决这个问题而继续下去.我真的很想了解真实性令牌.那么,我的问题是,您是否有关于此主题的完整信息来源,或者您是否会花时间在此详细解释?

ruby ruby-on-rails authenticity-token

959
推荐指数
10
解决办法
18万
查看次数

<script type ="text/template"> ... </ script>的说明

我偶然发现了一些我以前从未见过的东西.在Backbone.js的示例TODO应用程序(Backbone TODO示例)的源代码中,他们将模板放在a中<script type = "text/template"></script>,其中包含的代码看起来像是PHP之外但带有JavaScript标记的代码.

谁可以给我解释一下这个?这是合法的吗?

javascript templates types backbone.js underscore.js

446
推荐指数
6
解决办法
20万
查看次数

在Python中解析JSON

我的项目当前正在python中收到一条JSON消息,我需要从中获取一些信息.出于此目的,我们将其设置为字符串中的一些简单JSON:

jsonStr = '{"one" : "1", "two" : "2", "three" : "3"}'
Run Code Online (Sandbox Code Playgroud)

到目前为止,我一直在使用列表生成JSON请求,json.dumps但是为了做到与此相反,我认为我需要使用它,json.loads但我没有太多运气.任何人都可以给我一个片段,在上面的例子中输入"2"会返回"2"吗?

python parsing json

254
推荐指数
5
解决办法
48万
查看次数

为什么人们把代码放在"抛出1; <不要是邪恶的>"和"for(;;);"之类的代码中.在json面前回应?

可能重复:
为什么Google会在(1)之前提前; 他们的JSON回复?

Google会像这样返回json:

throw 1; <dont be evil> { foo: bar}
Run Code Online (Sandbox Code Playgroud)

和Facebooks ajax有这样的json:

for(;;); {"error":0,"errorSummary": ""}
Run Code Online (Sandbox Code Playgroud)
  • 为什么他们会放置会停止执行的代码并生成无效的json?
  • 如果它无效,它们如何解析它,如果你试图评估它会崩溃?
  • 他们只是从字符串中删除它(看起来很贵)?
  • 这有什么安全优势吗?

作为对安全目的的回应:

如果刮刀位于另一个域上,则必须使用script标记来获取数据,因为XHR不会跨域工作.即使没有for(;;);攻击者如何获取数据?它没有分配给变量,所以它不会被垃圾收集,因为它没有引用它?

基本上,为了获得数据跨域,他们必须这样做

<script src="http://target.com/json.js"></script>
Run Code Online (Sandbox Code Playgroud)

但即使没有崩溃脚本,攻击者也不能使用任何Json数据而不将其分配给您可以全局访问的变量(在这些情况下不是这样).崩溃代码没有任何效果,因为即使没有它,他们也必须使用服务器端脚本来使用其站点上的数据.

javascript security ajax json

210
推荐指数
4
解决办法
2万
查看次数

Ajax调用响应如'for(;;); {json data}'是什么意思?

可能重复:
为什么人们把代码放在"抛出1; <dont be evil>"and"for(;;);"在json回应之前?

我发现这种语法在Facebook上用于Ajax调用.我在for (;;);回答开始时对此感到困惑.它是干什么用的?

这是电话和回复:

GET http://0.131.channel.facebook.com/x/1476579705/51033089/false/p_1524926084=0
Run Code Online (Sandbox Code Playgroud)

响应:

for (;;);{"t":"continue"}
Run Code Online (Sandbox Code Playgroud)

ajax json facebook

196
推荐指数
5
解决办法
5万
查看次数

JSON Hijacking在现代浏览器中仍然是一个问题吗?

我正在使用Backbone.js和Tornado Web服务器.在Backbone中接收集合数据的标准行为是作为JSON数组发送.

另一方面,由于以下漏洞,Tornado的标准行为是不允许使用JSON Array:

http://haacked.com/archive/2008/11/20/anatomy-of-a-subtle-json-vulnerability.aspx

相关的一个是:http: //haacked.com/archive/2009/06/25/json-hijacking.aspx

当我真的是一个对象列表时,我不必在对象中包装我的JSON.

我无法在现代浏览器中重现这些攻击(即当前的Chrome,Firefox,Safari和IE9).与此同时,我无法确认现代浏览器解决这些问题的任何地方.

为了确保我既没有任何可能的糟糕的编程技能,也没有糟糕的谷歌搜索技能:

在现代浏览器中,这些JSON劫持攻击现在仍然是一个问题吗?

(注意:很抱歉可能重复:在现代浏览器上可以进行'JSON劫持'吗? 但由于接受的答案似乎没有回答这个问题 - 我认为现在是时候再问一遍并得到一些更明确的解释.)

javascript browser security json tornado

142
推荐指数
1
解决办法
3万
查看次数

为什么要"while(1);" 在XmlHttpRequest响应?

可能重复:
为什么Google会在(1)之前提前; 他们的JSON回复?

我正在使用谷歌日历玩萤火虫.我碰巧发现某些XHR请求有如下响应:

while(1);[['us','bW9yZ2FuLmNoZW5nbW9AZ21haWwuY29t 20090320/20090904 63378122163']]
Run Code Online (Sandbox Code Playgroud)

它看起来像带有前缀死循环javascript语句的JSON.

我不确定为什么Google Calendar会有这种XHR响应.有关于此的任何已知的AJAX实践吗?

javascript ajax json xmlhttprequest

46
推荐指数
0
解决办法
6622
查看次数

为什么在使用json_encode时使用CJSON编码

我正在使用Yii为网站构建API.我知道有一个名为CJson的实用程序类,它有一个名为encode的函数.

据我所知,还有其他参数可以在原生json_encode函数中自定义,如JSON_NUMERIC_CHECK,这非常有用.它创建

{
    "id": 17
}
Run Code Online (Sandbox Code Playgroud)

而不是Yii的CJSON编码,它使'17'成为一个字符串.

{
    "id": "17"
}
Run Code Online (Sandbox Code Playgroud)

所以我的问题是我是否应该使用CJSON编码而不是内置的PHP函数json_encode?

php json yii

30
推荐指数
1
解决办法
6437
查看次数

在Facebook ajax中清空"for"循环

在浏览facebook并使用Firebug网络调试器时,我注意到facebook的AJAX响应都以空循环开始.

例:

for(;;);{...}
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么这样做?我认为这是为了防止某种XSS攻击,但我并不完全理解.谢谢!

javascript ajax facebook

26
推荐指数
1
解决办法
3087
查看次数

JSON无法解决的问题:为什么这么严重?

在阅读了这个问题之后,为什么google/facebook等添加了无法解决的问题:

  • while(1);
  • for(;;);
  • &&&START&&& ... &&&END&&&
  • 1和3组合

对他们的JSON回应,我已经理解了动机.但是,我仍然不清楚为什么会使用这种相对复杂的机制,当类似的效果可以用类似的东西来实现

  • )在开头添加额外的内容,使整个行无效,语法错误
  • 将JSON包装在注释中

现在,似乎这种无限循环和(奇怪的)语法错误的附加保护将是绕过旧的和允许的javascript解析器,但我似乎找不到任何引用,表明情况就是这样.还有另一个SO问题甚至消除了while(1);解决方法(说明1可能被破坏)并拒绝表单的另一种解决方法{}&&,但没有解释为什么或引用任何来源.

其他参考:

javascript security json

26
推荐指数
1
解决办法
2021
查看次数