使用 postMessage() 绕过具有原点的阻塞框架访问跨源框架
Bypassing a blocked frame with origin from accessing a cross-origin frame with postMessage()
我听说您可以使用 postMessage() 绕过 "blocked a frame with origin from accessing a cross-origin frame",我一直在尝试使用它,但它无法正常工作。我做错了什么?
<iframe src="www.example.com" id = "theID"></iframe>
document.getElementById('theID').contentWindow.postMessage({
document.querySelector("input[value='true']").click();
});
您可以将您的服务器用作代理。假设您打算在 iframe 中加载页面 XYZ,您可以创建一个 XYZ.php 页面,该页面向 XYZ 发送请求并在页面中显示响应。您将需要解决可能由相对 URL 引起的问题。另外,请确保您所做的一切都是善意且合法的。
流程将如下所示:
- parent.php 的请求已发送到服务器
- 服务器用parent.php响应浏览器
- 在 parent.php 的结构中,您有一个指向 child.php 的 iframe,这也是您的页面
- child.php 依次向实际来源发送请求,并将收到的响应发送回浏览器
- iframe 的 onload 事件将触发您打算执行的 parent.php 的逻辑
我听说您可以使用 postMessage() 绕过 "blocked a frame with origin from accessing a cross-origin frame",我一直在尝试使用它,但它无法正常工作。我做错了什么?
<iframe src="www.example.com" id = "theID"></iframe>
document.getElementById('theID').contentWindow.postMessage({
document.querySelector("input[value='true']").click();
});
您可以将您的服务器用作代理。假设您打算在 iframe 中加载页面 XYZ,您可以创建一个 XYZ.php 页面,该页面向 XYZ 发送请求并在页面中显示响应。您将需要解决可能由相对 URL 引起的问题。另外,请确保您所做的一切都是善意且合法的。
流程将如下所示:
- parent.php 的请求已发送到服务器
- 服务器用parent.php响应浏览器
- 在 parent.php 的结构中,您有一个指向 child.php 的 iframe,这也是您的页面
- child.php 依次向实际来源发送请求,并将收到的响应发送回浏览器
- iframe 的 onload 事件将触发您打算执行的 parent.php 的逻辑