当父来自不同的域时,在另一个iframe中执行javascript函数

Fru*_*hko 6 javascript xss iframe cross-domain

页面A.com有2个iframes B.com/page1B.com/page2.这是A.com的代码:

<html><body>
    <iframe src="b.com/page1" name="iframe1" id="iframe1">
    <iframe src="b.com/page2">
</body></html>
Run Code Online (Sandbox Code Playgroud)

我想从B.com/page2B.com/page1上执行js功能.当父来自同一个域而不是跨域方案时,以下两个示例都很有效:

parent.window.frames['iframe1'].SomeFunction(args);
Run Code Online (Sandbox Code Playgroud)

要么

parent.document.getElementById('iframe1').contentWindow.SomeFunction(args);
Run Code Online (Sandbox Code Playgroud)

有什么办法吗?

Sea*_*sey 8

代替

parent.window.frames['iframe1'].SomeFunction(args);
Run Code Online (Sandbox Code Playgroud)

使用

parent.frames['iframe1'].SomeFunction(args);
Run Code Online (Sandbox Code Playgroud)

你被允许穿越frames,你可以引用任何窗口的集合,但在这种情况下,你正试图穿越递归window的财产parent(这是窗口).这是不允许的.