2016-12-24 43 views
2

比方說,我們有我們自己的腳本在這裏:使用cURL時,目標網頁能否檢測到確切的網址?

https://example.com/random_name/script.php

// Code inside the script.php 
$url = 'https://foo.com'; 
$ch = curl_init(); 
curl_setopt($ch, CURLOPT_URL, $url); 
curl_setopt($ch, CURLOPT_HEADER, 0); 
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30); 
curl_setopt($ch, CURLOPT_TIMEOUT, 60); 
$data = curl_exec($ch); 

正如你所看到的,上面的鏈接得到這個領域的內容:

https://foo.com

我知道foo.com可以看到example.com和它的IP Address

問題是,可以通過foo.com也(我們正在從內容的頁面)的任何方法檢測這個確切的部分: /random_name/script.php發出請求?它是否依賴於使用TLS?

+0

只要你的服務器不發送信息,沒有。它完全與TLS無關。 –

+0

@CharlotteDunois我在想他們可以在代碼中放入一些javascript,也許使用'XMLHttpRequest()'發回確切的URL,但這需要一個Web瀏覽器才能執行。那麼,如果不涉及網絡瀏覽器,那麼不存在可以檢測到確切URL的棘手方法? –

+0

他們想要發回什麼網址?他們什麼都沒有。只要目標網站不允許使用CORS,webbrowser也會阻止該AJAX請求。 –

回答

0

頁面(服務器/應用程序)可以包含請求中的所有信息。如果請求(在您的示例中 - script.php)不會發送額外的數據(/random_name/script.php),那麼接收請求的頁面將不會擁有它。

如果你想接收端(foo.com)瞭解它,你可以使用Referer標頭:

curl_setopt($ch, CURLOPT_REFERER, "https://example.com/random_name/script.php"); 

而且這種方式 - foo.com可以查看這些信息referer標題。

+0

我在想他們可以在代碼中放置一些JavaScript,也許使用'XMLHttpRequest()'發回確切的URL,但這需要一個Web瀏覽器才能執行。那麼,如果不涉及網絡瀏覽器,那麼不存在可以檢測到確切URL的棘手方法? –

+0

我想確保他們無法獲得具有任何技巧的確切URL,因此發送CURLOPT_REFERER不是這裏的情況。 –

+0

所以答案是,如果你只發送請求 - 接收端無法知道你發送請求的原始URL(只有IP,甚至沒有域)。 – Dekel