Javascript 获取来自我的网站的请求

Javascript 获取来自我的网站的请求,javascript,php,curl,Javascript,Php,Curl,我有一个简单的PHP页面,它生成随机json值并将其返回给用户。 我想知道哪个网站正在使用此页面使用curl或javascript获取数据。 例如: PHP页面: $datas['random'] = ['firstValue'=>'Hello', 'secondValue'=>'world']; header('Content-Type: application/json'); echo json_encode($datas); 现在代码将返回这个值 {"random":{"fi

我有一个简单的PHP页面,它生成随机json值并将其返回给用户。 我想知道哪个网站正在使用此页面使用curl或javascript获取数据。 例如:

PHP页面:

$datas['random'] = ['firstValue'=>'Hello', 'secondValue'=>'world'];
header('Content-Type: application/json');
echo json_encode($datas);
现在代码将返回这个值

{"random":{"firstValue":"Hello","secondValue":"world"}}
我想做的是:如果有人在他的网站上使用curl或javascript使用这个文件,我想知道哪个网站正在使用它,哪个网站请求它

如果网站在网站中使用此代码

var xhttp = new XMLHttpRequest();

                  xhttp.onreadystatechange = function () {
                      if (this.readyState === 4) {
                          if (this.status === 200) {
                              resolve(this.responseText);
                          } else if (this.response == null && this.status === 0) {
                              var reason = new Error('OFFLINE');
                              reject(reason);
                          } else {
                              var reason = new Error('ERROR');
                              reject(reason);
                          }
                      }
                  };


              xhttp.open("GET", "jsonpage.php", true);
              xhttp.send();
我希望能够知道网站请求了文件,而不使用额外的值
jsonpage.php?website=example.com


有没有什么方法可以使用PHP实现这一点。

您可以检查调用jsonpage.PHP的一方的IP地址,但据我所知,不是域

$\u服务器['REMOTE\u ADDR']
包含连接方的真实IP地址。这是你能找到的最可靠的价值

但是,它们可以位于代理服务器后面,在这种情况下,代理可能已将
$\u服务器['HTTP\u X\u FORWARDED\u FOR']
设置为
,但此值很容易被伪造。例如,它可以由没有代理的人设置,或者IP可以是来自代理后面LAN的内部IP

最后,如果您担心只有一些人可以访问jsonpage.php,我建议您实现公共/私有API密钥或oAuth,以确保只有正确的人可以访问


进一步阅读:

您可以检查调用jsonpage.php的一方的IP地址,但据我所知,不是域

$\u服务器['REMOTE\u ADDR']
包含连接方的真实IP地址。这是你能找到的最可靠的价值

但是,它们可以位于代理服务器后面,在这种情况下,代理可能已将
$\u服务器['HTTP\u X\u FORWARDED\u FOR']
设置为
,但此值很容易被伪造。例如,它可以由没有代理的人设置,或者IP可以是来自代理后面LAN的内部IP

最后,如果您担心只有一些人可以访问jsonpage.php,我建议您实现公共/私有API密钥或oAuth,以确保只有正确的人可以访问


进一步阅读:

您可以使用
$\u服务器['HTTP\u REFERER']
,它会告诉您哪个网站正在获取您的信息,但它并不真正可靠,因为它很容易从源代码更改。

您可以使用
$\u服务器['HTTP\u REFERER']
这将告诉您哪个网站正在获取您的信息,但它并不真正可靠,因为它很容易从源位置更改。

除非客户向您发送该信息,否则您无法获取该信息。您可以使用头文件
$\u SERVER['HTTP\u REFERER']
,但该文件可以由客户端修改,并不总是设置。除此之外,如果不传递一些参数,您就无法真正知道哪个站点发送了请求。如果是cURL,那么你可以检查他们的IP并尝试进行反向查找,但是如果他们使用JS,那么你将获得客户端IP,这样就不起作用了。这将起到一定作用,因为主要的想法是检查注册(白名单)网站,看看请求是否来自其中一个,没有人会知道什么是白名单网站,所以我想这对abit来说是可行的。似乎你应该使用OAuth或某种形式的API密钥系统。@ArtisticPhoenix如果我正在构建我的API系统,想知道请求来自何处呢?任何其他网站都不能使用客户端JavaScript请求你的数据,除非你首先明确地让它成为可能——关键字CORS。因此,在这种情况下,您已经知道请求的来源。除非客户端向您发送该信息,否则您无法获取该信息。您可以使用头文件
$\u SERVER['HTTP\u REFERER']
,但该文件可以由客户端修改,并不总是设置。除此之外,如果不传递一些参数,您就无法真正知道哪个站点发送了请求。如果是cURL,那么你可以检查他们的IP并尝试进行反向查找,但是如果他们使用JS,那么你将获得客户端IP,这样就不起作用了。这将起到一定作用,因为主要的想法是检查注册(白名单)网站,看看请求是否来自其中一个,没有人会知道什么是白名单网站,所以我想这对abit来说是可行的。似乎你应该使用OAuth或某种形式的API密钥系统。@ArtisticPhoenix如果我正在构建我的API系统,想知道请求来自何处呢?任何其他网站都不能使用客户端JavaScript请求你的数据,除非你首先明确地让它成为可能——关键字CORS。因此,在这种情况下,您已经知道请求的来源。这将获取用户ip地址,而不是请求it地址的网站。这将获取用户ip地址,而不是请求it地址的网站。