如何防止curl访问文件使用php

时间:2018-02-26 18:45:40

标签: php curl jwt

这里我有卷曲请求的问题。

我想在几个文件中阻止它。

这是我在服务器上的代码

MyFile.php

Class MyFile {
    public function getName() {
        return "hi";
    }
    public function getBday() {
        return '01-01-1970';
    }
}

$my = New MyFile();
return json_encode($my->$_GET['functionName']());

本地主机/测试/ MyFile.php?functionName =的getName

输出: hi

本地主机/测试/ MyFile.php?functionName = getBday

输出: 01-01-1970

我在 AJAX 中运行该文件,为了安全起见,我在AJAX请求中使用 JWT令牌作为授权标头。

那件事情很好。

但是当我尝试通过另一个网站的curl访问该文件时。那么它也在响应数据。但我必须阻止它。

AnotherServerFile.php

<?php
$header = array();
$header[] = 'Authorization: eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzUxMiJ9.eyJpYXQiOjE1MTk2NTA4NjMsImp0aSI6InQ4OTU3RjBIbE1yQ21UREdUdTNCK0VZdUFsTVZRZUZhNHhnckRyMzRnNXc9IiwiaXNzIjoibmlldHdhY2h0ZW4ubmwiLCJuYmYiOjE1MTk2NTA4NjMsImV4cCI6MTUxOTY1MjY2M30.wN7MA782ix-ln8uKlGNsc-oxMxJNa3hfmY9GjzhVeFhEZm5IJOMd0PU8ppUxDU9_yDGcbKsuPzNzCh6CmPQ1qA';
$header[] = "X-Requested-With: XMLHttpRequest";
$service_url = 'localhost/test/MyFile.php?functionName=getName';
$curl = curl_init($service_url);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_HTTPHEADER, $header);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); //IMP if the url has https and you don't want to verify source certificate
$curl_response = curl_exec($curl);
$response = json_decode($curl_response);
curl_close($curl);

var_dump($response);

此文件位于另一台服务器上。像

example.com/AnotherServerFile.php

AnotherServerFile.php 文件可以通过cURL访问我的 MyFile.php 代码。

所以,我想阻止使用 AnotherServerFile.php 访问 MyFile.php

任何帮助将不胜感激。

0 个答案:

没有答案