我有以下代碼:的file_get_contents和瀏覽器會話
$homepage = file_get_contents("https://example.com/specific_page");
echo $homepage;
瀏覽器已經有我需要訪問,所以如果我打開新的標籤頁的網址,頁面才能正確顯示在網站的會話加載。
問題是,PHP腳本,重定向到「你沒有登錄」頁面。請注意,即使在重新啓動瀏覽器後,該url仍然可用。
任何想法如何獲得內容,而無需編寫登錄到網站的代碼?
我有以下代碼:的file_get_contents和瀏覽器會話
$homepage = file_get_contents("https://example.com/specific_page");
echo $homepage;
瀏覽器已經有我需要訪問,所以如果我打開新的標籤頁的網址,頁面才能正確顯示在網站的會話加載。
問題是,PHP腳本,重定向到「你沒有登錄」頁面。請注意,即使在重新啓動瀏覽器後,該url仍然可用。
任何想法如何獲得內容,而無需編寫登錄到網站的代碼?
如果一個網站可以訪問任意外部網站上的數據,這將是一個巨大的安全問題。想象一下:file_get_contents('https://yourbank.com/all-your-details')
。
要做到這一點,唯一的方法是向用戶詢問他/她在外部網站上的登錄憑據並手動登錄。然而,這將是不可靠的,因爲認證過程可能會改變(並且要求某人輸入他/她的密碼是非常不禮貌的)。
這通常是Web服務API的用途,但如果沒有可供您感興趣的網站可用,那麼您會遇到困難。
如果你已經知道了網站的登錄憑據,那麼你可以硬編碼到他們使用Blauesocke所概述的方法的腳本,但如果細節是唯一的當前用戶這是不行的。
似乎你是對的,因爲@hakre提到我需要通過憑據,然後請求具體頁面。我將需要就如何實現這一點做更多的研究。 – user1359575
聽起來像xyz.com使用cookie來製作持久性數據。您的域(運行php腳本)根本無法訪問該會話。這是一項安全措施。 – Lix
*「任何想法如何獲得內容,而無需編寫登錄到站點的代碼?」*如果站點要求您登錄,則不需要登錄 – 2013-01-06 23:21:18
您還需要將會話憑證/令牌傳遞到頁面,例如,通過Cookie請求頭或URL上的某個查詢參數 - 取決於該網站如何處理會話。如果會話綁定到遠程IP,您可能無法劫持會話(您可以將其稱爲會話鎖定,瞭解其工作原理,同樣的原理適用於此)。 – hakre