我正在尝试使用easyXDM javascript库来实现一些跨域攻击。
一些关于easyXDM的背景。我们有两个角色:
这项规定如下:
The consumer passes the content as parameter and calls the function through RPC.
The provider receives the request and use the content to modify its page.在这里,修改其页面意味着尝试修改DOM结构或DOM节点中的内容。
provider端的代码,一旦使用者请求,它将修改其页面内容。
var provider = new easyXDM.Rpc({}, {
local: {
modifyContent: {
method: function(content){
// modify the content on my page
}
}
}
});使用者端,它将执行RPC请求提供程序更改其页面。
var consumer = new easyXDM.Rpc({
remote: "remoteUrl"
}, {
remote: {
modifyContent: {}
}
});
//perform RPC and ask the provider to the modify its content
consumer.modifyContent("This is some content that should be used to modify your content");所有事情都进行得很好,但当提供者试图使用内容修改其页面时除外。
不会引发错误或警告。但是页面不会像预期的那样改变。
此外,我只运行“更改内容”代码(如复制和粘贴,运行在Firebug控制台或Chrome控制台),它将工作。
以前有人使用过easyXDM并遇到过这个问题吗?
PS:easyXDM似乎不是这里的标签。如果你同意的话,请帮我补充一下。
发布于 2012-11-12 21:19:04
我遇到了同样的问题,问题是我不明白easyXDM的RPC功能是如何工作的。
对我来说,问题在于我将子元素iframe添加到父服务器,然后使用我添加到页面的iframe的url调用easyXDM.Rpc()。当我从父级向子节点发送消息时,子节点将很好地接收消息(并通过控制台记录正确的消息),但是我无法更改子服务器中的任何本地内容或全局变量。我不明白的是,当在父程序中创建一个新的RPC客户机时,该工具会自动创建一个iframe。我以为它只会使用我在页面上画的iframe。因此,我从一个iframe (默认情况下是在屏幕外绘制)记录日志,并与一个没有连接到RPC调用的iframe交互。
为了解决这个问题,我删除了添加到页面中的iframe,并使用RPC配置的"props“属性使iframe在屏幕上可见。一旦我这么做了,一切都很顺利。
https://stackoverflow.com/questions/8851355
复制相似问题