将 $_POST 发送到被屏蔽的站点

Send $_POST to masked site

我在使用 PHP 发送表单时遇到问题。

我有一个页面 domain1.com 带有脚本,第二个 domain2.com 带有对第一个域的屏蔽。

第二个域 domain2.com 在浏览器中可见,但脚本在 domain1.com

下有效

我尝试从 domain2.com 向自己发送 $_POST 数据,但是 $_POST 无法发送。

表格头部看起来像这样:

<form method="post" action="http://<?php echo $_SERVER["HTTP_HOST"].$_SERVER["REQUEST_URI"] ?>">

然后我尝试var_dump$_POST,但是它是NULL吗。

我的问题是:如何从屏蔽域中捕获 $_POST 数据?可能有一些技巧吗?

任何想法都有帮助,谢谢大家。

示例 1:

<form method="post" action="http://domain2.com">
<input type="hidden" name="data" value="1" />
<input type="submit" value="send" />
</form>

示例 2:

<form method="post" action="http://domain1.com">
<input type="hidden" name="data" value="1" />
<input type="submit" value="send" />
</form>

简短的回答是你不能。

遮罩通过使用框架来工作。它采用用于加载框架集的 URL 的路径段,并将其与不同的基础 URL 一起用作框架的 src。这只能触发GET请求。

如果您完全控制生成框架集的服务器,那么您可以将数据输出到框架集的 HTML,用 JavaScript 读回,生成一个表单里面的数据然后提交(还是用JS)。

那将是一个可怕的黑客攻击,如果您对服务器有那么多的控制权,那么您可能无论如何都会使用适当的托管域。

你不能那样做。这违反了跨域政策

简单的底线。表单中的 action= 参数是 $_POST 将是 parsed/handled/whatever.

的地方

相框很便宜,更像是一文不值(做这些不是相框的东西的其他方法)。

AJAX 和 javascript 是你的朋友。

没有 JS,您可以将 domain1 上的表单提交到 domain2,然后 header() 重定向回 domain1。

黑客,是的。

可能行得通。

我会在上面签名吗,不会。