0

我的服务器 A 中有一些客户数据。

我的客户拥有自己的服务器 B(我无法控制它)在他们的网页上显示一个 IFRAME(将其命名为原始页面),调用我的服务器 A 页面,显示有关客户的一些信息。

如果他们的原始页面是例如 www.serverB.com/theripage.php?var=asdfsddf 并且里面有 iframe,我可以使用 HTTP_REFERER 轻松访问变量 VAR 的内容。因此,实际上我可以显示他们需要的数据。

此设置有效,但对于需要在页面中使用 url 中的查询字符串启动请求的用户来说很复杂。

如何以其他方式将值传递给我的服务器?

如果客户删除 url 中的查询字符串并在他的页面中编写此代码:

<iframe src=http://www.serverA.com/index.php?var=asdfsddf></iframe> 

我无法访问同一域策略的 GET 值。

如果我尝试跑步

$_SERVER['SERVER_NAME'] . $_SERVER['REQUEST_URI']

我只得到没有查询字符串的结果.....所以

http://www.serverA.com/index.php

有什么帮助吗?

4

2 回答 2

0

我认为您需要 http://www.serverA.com/index.php?var=asdfsddf在 serverA (您的服务器)上将 , 的输出包装在 iframe 中。使用 javascript 和/或 jQuery 将 iframe 的内容扩展到实际页面的宽度和高度。

然后将 javascript 放在 iframe 内容中以获取 iframe 的 src 值(从您的服务器),javascript 应该按id值获取帧(您应该为它定义)并以这种方式获取 url。

查看这个 stackoverflow 问题的答案: 如何从父 url 或父 iframe 获取变量?

基本上,您要做的是将结果的内容放在服务器上的 iframe 中serverA,而当他们将其放入 iframe on 时serverB,实际上它将在 2 个 iframe 内。您可以控制最里面的 iframe,它是其中显示内容的 iframe。

在服务器上的 iframe 代码中,您可以使用代码(jQuery 和/或 javascript)使 iframe 完全扩展到其内容,因此,甚至没有人会知道它一开始就在 iframe 中。

于 2013-09-08T00:27:14.770 回答
0

我会推荐 CURL 而不是 iFrame。iframe 不安全,数据很容易被篡改。

cURL 执行 GET 请求来检索页面,但 cURL 也可以使用其他方法,例如 POST 和 PUT。

对于这个例子,让我们模拟登录到一个网站。登录是通过向http://example.com/login.php发送 POST 请求来完成的,其中包含以下详细信息:

<?php
$postData = array(
    'login' => 'acogneau',
    'pwd' => 'secretpassword',
    'redirect_to' => 'http://example.com',
    'testcookie' => '1'
);

curl_setopt_array($ch, array(
    CURLOPT_URL => 'http://example.com/login.php',
    CURLOPT_RETURNTRANSFER => true,
    CURLOPT_POST => true,
    CURLOPT_POSTFIELDS => $postData,
    CURLOPT_FOLLOWLOCATION => true
));

$output = curl_exec($ch);
echo $output;
?>

您可以轻松地使用正则表达式来获取所需的数据。

于 2013-10-14T06:36:40.750 回答