簡體   English   中英

檢查頁面是否在瀏覽器中查看? PHP

[英]check if page is viewed in browser? PHP

我想知道是否有任何方法可以檢查頁面是否已在PHP的瀏覽器中(由人操作)運行。

我有一個頁面,只需要通過cURL請求即可訪問。 所以我不希望用戶窺探它。

有任何想法嗎?

謝謝

編輯:

因為這是在網絡上不容易發現的問題之一,所以這是我使用的解決方案:

多虧了安東尼·阿諾德,我想出了一個主意。 它不是很穩定,但現在應該這樣做。

我只是在cURL請求中發送了用戶代理:

//made a new var with the user agent string.
$user_agent = "anything I want in here, which will be my user agent";

//added this line in the cURL request to send the useragent to the target page:
curl_setopt($ch, CURLOPT_USERAGENT, $user_agent);

然后我只寫了一個if語句來處理它:

if 
($_SERVER['HTTP_USER_AGENT'] == "my expected useragent - the string i previously placed into the $user_agent var."){

echo "the useragent is as expected, do whatever";
} 

else if 
($_SERVER['HTTP_USER_AGENT'] != "my expected useragent - the string i previously placed into the $user_agent var."){

echo "useragent is not as expected, bye now."; exit();}

那就成功了。

檢查User-Agent或使用獲取瀏覽器功能檢查哪個瀏覽器正在請求您的頁面。 您可以將Web服務器配置為失敗,除非指定了特定的用戶代理。 您可以使用--user-agent開關在cURL中設置用戶代理(請參見手冊頁 )。

不幸的是,用戶代理可以被欺騙,因此您絕對不能絕對確定客戶端發送的代理是正確的。

但是這個想法有一個問題。 如果它在公共網絡上,您必須期望人們會嘗試以任何方式訪問它! 如果HTTP請求有效,則您的服務器將對其進行響應(在默認配置下)。 don't want it accessed by any method other than your prescribed cURL one, then you might need to invest in some further authentication/authorization methods (eg username/passphrase authentication via SSL). 如果您不希望通過規定的cURL以外的任何方法訪問它,則可能需要投資一些其他的身份驗證/授權方法(例如,通過SSL的用戶名/密碼身份驗證)。

暫無
暫無

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

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