插入循环时获取Javascript代码
我发现了一个很难重现的问题,但我想这里可能有人看到了 在一些正在执行的Javascript代码中,我有以下构造的代码(使用ExtJS) 发生的情况是,在浏览器中执行此代码时,似乎有人试图进行一些数据污染以防止JSON劫持。因此,当您查看源代码时,代码如下所示插入循环时获取Javascript代码,javascript,json,extjs,Javascript,Json,Extjs,我发现了一个很难重现的问题,但我想这里可能有人看到了 在一些正在执行的Javascript代码中,我有以下构造的代码(使用ExtJS) 发生的情况是,在浏览器中执行此代码时,似乎有人试图进行一些数据污染以防止JSON劫持。因此,当您查看源代码时,代码如下所示 var newObject = Ext.Object({ property: 'value', property2: 'value', property3: new Ext.Object2({ pro
var newObject = Ext.Object({
property: 'value',
property2: 'value',
property3: new Ext.Object2({
property1: 'value',
listProperty: F_O_O: while(1) {[
{ name: 'foo', value: 'bar' },
{ name2: 'foo2', value: 'bar2' }
last F_O_O; }
]
})
});
不幸的是,这是无效的JavaScript,并导致运行时错误
我和其他几个开发人员一样对此进行了广泛的研究,但我们无法最终发现是什么导致了内联代码的更改。许多网络搜索都没有透露任何关于谁插入此代码的细节(Windows?IE?FF?Apache?)。我们已经在IE8、IE9和Firefox中看到了变化。这是通过安装在Windows2008R2服务器上的Apache2.2运行的Javascript代码,安装了Mason
还有谁见过这种情况吗?显然,框架编辑JSON以防止劫持是很常见的。类似于asp.net将
d:
添加到json字符串中。顺便说一句,所有Ext.Object
的东西是怎么回事?@Evantimboli我只是使用了假名称,而不是真正的ExtJS对象。给出这个问题的实际对象是Ext.data.JsonReader。如果您想在客户端解决这个问题,您需要编写一个自定义读取器,在对其运行json解析器之前去掉所有的缺点。
var newObject = Ext.Object({
property: 'value',
property2: 'value',
property3: new Ext.Object2({
property1: 'value',
listProperty: F_O_O: while(1) {[
{ name: 'foo', value: 'bar' },
{ name2: 'foo2', value: 'bar2' }
last F_O_O; }
]
})
});