簡體   English   中英

獲取來自我網站的請求

[英]Get where requests coming from to my website

我有一個簡單的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在他的網站中使用了此文件,我希望能夠知道哪個網站正在使用它,哪個網站請求了它。

如果網站http://example.com在網站中使用了此代碼

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();

我想知道網站http://example.php請求了文件, 而沒有使用額外的值jsonpage.php?website=example.com

有什么辦法可以使用PHP做到這一點。

您可以檢查撥打jsonpage.php的一方的IP地址,但據我所知,不是域。

$_SERVER['REMOTE_ADDR']包含連接方的真實IP地址。 那是您能找到的最可靠的價值。

但是,它們可能位於代理服務器之后,在這種情況下,代理可能已設置$_SERVER['HTTP_X_FORWARDED_FOR'] ,但此值很容易被欺騙。 例如,它可以由沒有代理的人設置,或者IP可以是來自代理后面的LAN的內部IP。

最后,如果您擔心只有一些人可以訪問jsonpage.php,我建議您實現公共/私有API密鑰或oAuth,以確保只有合適的人才能訪問。

進一步閱讀: 如何在PHP中獲取客戶端IP地址

您可以使用$_SERVER['HTTP_REFERER']來告訴您哪個網站正在獲取您的信息,但它並不可靠,因為很容易從源代碼進行更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM