0

我知道,有 JSONP,它涉及服务器合作来命名空间数据。

困扰我的是 script 标签的内容src评估,但它不可读

<script src="http://www.google.com"></script>

我们需要弄清楚的是如何命名数据,仅此而已。当然,我尝试了非常愚蠢的事情,但没有相关结果(我知道这不起作用,但你可以看到我想要实现的目标):

<script>eval('var namespace="');</script>
<script src="http://www.google.com"></script>
<script>eval('";');</script>

由于确实没有关于如何src评估内容的相关信息,我知道它是全局范围,但是如果我们可以跟踪评估步骤或者可能以某种方式链接评估范围(也没有太多关于此的文档),我们可以解决这个烦人的“评估但不可读”的东西。

有任何想法吗?

4

3 回答 3

1

由于浏览器安全策略,我不确定这是否可能。

于 2009-02-15T18:39:35.397 回答
1

HTML5 提供window.postMessage了一种安全的跨域消息传递机制,并受到 Firefox 3、Opera 9.6 和 WebKit nightlies 的支持。

那就是说您上面的建议行不通,因为它需要与 javascript 完全不同的行为evaleval在当前上下文中解析并执行给定的字符串——您要求的是 eval 更改包含函数的实际代码。例如。

 for (var i = 0; i < 10; i++) eval("; doSomething();");

会成为

 for (var i = 0; i < 10; i++) ; doSomething();;

这意味着 for 循环变为空,并且doSomething只会被调用一次。显然,这将导致难以理解语义,并使其使用安全性大大降低,因为 eval 将获得直接影响控制流的能力。

于 2009-02-16T04:41:05.047 回答
0

我倾向于说离开它。这类问题将得到解决,但不是通过破解我们已有的东西。在这方面,网络从根本上被破坏了。来自一个域的任何脚本都可以在另一个域上执行这一事实是一个严重的安全漏洞,如果不加以检查,它将阻碍 Web 的发展。

http://www.slideshare.net/webdirections/douglas-crockford-ajax-security-presentation

于 2009-02-15T18:40:55.690 回答