[英]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.