PHP - 挖掘 API
PHP - Tunneling the API
我不知道这个方法叫什么:反向代理、隧道、绕过?
想象一下,我们有 3 个网站:
http://exampleapi.com - API or Service provider
http://example1.com - I bought the API for this Website from example.com
http://example2.com - My New website
1。我为 example1.com 购买了 API 或支付网关服务,该网站没有任何内容、表格、数据。 (只是为了得到API)
2。现在,我想在 example2.com | 之间创建隧道 | example1.com | exampleapi.com。我的意思是,从 example2.com 获取所有请求,发送到 example1.com 并将数据传递给 exampleapi.com.
3。响应后,exampleapi.com.com 将数据发送到 example1.com,example2.com 将接收数据并显示给用户。
下面是一个如何编写代码的示例。你可以像我一样在一个站点上模拟这个。在我的网站上,我创建了 3 个文件夹:
- 示例 1
- 示例 2
- exampleapi
在每个文件下,我创建了一个 index.php 文件。让我们看看他们。
你的网站。com/exampleapi/index.php
<?php
header("Content-Type: application/text");
echo 'Titanic vs. Iceberg';
这个输出是明文
Titanic vs. Iceberg
我们将从示例 1 中调用此 API。
你的网站。com/example1/index.php
该站点的代码将拥有自己的数据 and
将从 exampleapi/index.php 中提取数据,如下所示:
<?php
// call exampleapi
$url = 'https://yoursite.com/exampleapi/index.php';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);
// show data
header("Content-Type: application/json");
$data = [
'name' => 'John',
'age' => 25,
'data_from_exampleapi' => $response
];
echo json_encode($data);
此代码的输出将是
{"name":"John","age":25,"data_from_exampleapi":"Titanic vs. Iceberg"}
我们将从示例 2 中调用它。
你的网站。com/example2/index.php
这将是您的网页。我模拟了一个电话。按下按钮时,PHP 将向 example1/index.php 发送请求。并且该页面将向exampleapi/index.php发送请求,获取数据,将获取的数据与自己的数据组合并发送回example2/index.php
<?php
function fetchInformation()
{
$url = 'https://yoursite.com/example1/index.php';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
?>
<!doctype html>
<body>
<form action="./" method="get">
<p>
When you press this button, PHP will try to get data from
example1/index.php and show information
below
</p>
<input type="submit" value="Get data from API" name="mybutton" id="mybutton">
</form>
<?php
// only if button is pressed, fetch information
if ($_SERVER['REQUEST_METHOD'] === 'GET')
{
if ( ! is_null($_REQUEST['mybutton']) )
{
echo '<h3>Information received</h3>';
$response = fetchInformation();
echo '<p>' . $response . '</p>';
}
}
?>
</body>
当您访问您的网站时。com/example2/index。php,您会看到类似这样的内容:
当你按下按钮时,example2/index.php -> 调用 example1/index.php -> 调用 exampleapi/index.php .数据反向,你会看到这样的输出:
这向您展示了如何使用 PHP 一个页面调用另一页面上的 API。如果您控制着另一个页面,您可以调整代码以从 yet-another-page.
调用 API
我不知道这个方法叫什么:反向代理、隧道、绕过?
想象一下,我们有 3 个网站:
http://exampleapi.com - API or Service provider
http://example1.com - I bought the API for this Website from example.com
http://example2.com - My New website
1。我为 example1.com 购买了 API 或支付网关服务,该网站没有任何内容、表格、数据。 (只是为了得到API)
2。现在,我想在 example2.com | 之间创建隧道 | example1.com | exampleapi.com。我的意思是,从 example2.com 获取所有请求,发送到 example1.com 并将数据传递给 exampleapi.com.
3。响应后,exampleapi.com.com 将数据发送到 example1.com,example2.com 将接收数据并显示给用户。
下面是一个如何编写代码的示例。你可以像我一样在一个站点上模拟这个。在我的网站上,我创建了 3 个文件夹:
- 示例 1
- 示例 2
- exampleapi
在每个文件下,我创建了一个 index.php 文件。让我们看看他们。
你的网站。com/exampleapi/index.php
<?php
header("Content-Type: application/text");
echo 'Titanic vs. Iceberg';
这个输出是明文
Titanic vs. Iceberg
我们将从示例 1 中调用此 API。
你的网站。com/example1/index.php
该站点的代码将拥有自己的数据 and
将从 exampleapi/index.php 中提取数据,如下所示:
<?php
// call exampleapi
$url = 'https://yoursite.com/exampleapi/index.php';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);
// show data
header("Content-Type: application/json");
$data = [
'name' => 'John',
'age' => 25,
'data_from_exampleapi' => $response
];
echo json_encode($data);
此代码的输出将是
{"name":"John","age":25,"data_from_exampleapi":"Titanic vs. Iceberg"}
我们将从示例 2 中调用它。
你的网站。com/example2/index.php
这将是您的网页。我模拟了一个电话。按下按钮时,PHP 将向 example1/index.php 发送请求。并且该页面将向exampleapi/index.php发送请求,获取数据,将获取的数据与自己的数据组合并发送回example2/index.php
<?php
function fetchInformation()
{
$url = 'https://yoursite.com/example1/index.php';
$curl = curl_init($url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($curl);
curl_close($curl);
return $response;
}
?>
<!doctype html>
<body>
<form action="./" method="get">
<p>
When you press this button, PHP will try to get data from
example1/index.php and show information
below
</p>
<input type="submit" value="Get data from API" name="mybutton" id="mybutton">
</form>
<?php
// only if button is pressed, fetch information
if ($_SERVER['REQUEST_METHOD'] === 'GET')
{
if ( ! is_null($_REQUEST['mybutton']) )
{
echo '<h3>Information received</h3>';
$response = fetchInformation();
echo '<p>' . $response . '</p>';
}
}
?>
</body>
当您访问您的网站时。com/example2/index。php,您会看到类似这样的内容:
当你按下按钮时,example2/index.php -> 调用 example1/index.php -> 调用 exampleapi/index.php .数据反向,你会看到这样的输出:
这向您展示了如何使用 PHP 一个页面调用另一页面上的 API。如果您控制着另一个页面,您可以调整代码以从 yet-another-page.
调用 API