【问题标题】:Does CURL GET recipient see the file making the GET request?CURL GET 收件人是否看到发出 GET 请求的文件?
【发布时间】:2016-05-02 16:03:03
【问题描述】:

假设我们有 File /path/aFile.php,它对域 example.com 进行 curl GET 调用(example.com 是本地网络之外的域)。

$url="https://example.com/";
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL,$url);
$result=curl_exec($ch);
print $result;

example.com 的主机会看到 GET curl 请求来自文件“aFile.php”吗? 他能否看到更多信息,例如“/path/aFile.php”等文件的目录

显示什么信息?我尝试使用 Charles 应用程序和篡改数据,并在 GET 请求中显示:

GET /path/aFile.php HTTP/1.1

如果确实将此类信息传递给 GET 请求的接收者,是否可以不显示所有这些信息?

我在 curl 请求中添加了以下标头,但我仍然得到相同的信息。

curl_setopt($ch, CURLOPT_HTTPHEADER, array(
   "Host:             example.com",
   "Accept-Encoding:  gzip",
   "Accept:           application/json",
   "Referer:          $hosturl_stripped",
   "User-Agent:       Mozilla/4.0 Firefox/46.0",
   "Accept-Language:  en-US,en;q=0.5",
   "X-Requested-With: XMLHttpRequest",
));

【问题讨论】:

  • 你可以 curl 一个 php 文件,print_r($_SERVER) 并找出答案。不,除非你这样做,否则它是不可见的。你问来干什么?这可能更相关。
  • 我不想在本地环境中测试它,因为我认为它的行为可能会有所不同。我不希望有人知道我在他们的网站上使用的文件的文件名或文件夹结构。
  • I assume it could behave differently 不会,但根本不尝试有点懒惰。 I do not want them to know the name of the file + downloads/scrapes - 仅此一项就好像你在做一些不值得任何帮助的事情。

标签: php curl get request-headers


【解决方案1】:

GET 请求只是 HTTP 请求的类型,没有任何字符串附加到执行调用的任何客户端软件(无论是浏览器、curl 还是 wget 等)。但是,如果您愿意,您可以通过在请求中发送额外的标头(即User-Agent)来宣布这一点,就像浏览器(默认情况下也是 curl)所做的那样。

【讨论】:

  • 接收方会知道我本地计算机上发出 GET 请求的文件吗?我正在下载一个网页,我不希望他们知道我用来执行 php curl get 的文件的名称。
  • 您的意思是您有foo.php 执行请求的脚本并且您希望他们不知道这一点?此类信息不是 HTTP 请求的一部分,因此除非您在标头中发送,否则对方不会知道此类信息。
  • 是的,我正在使用文件夹 /path/aFile.php 中的一个文件,其中包含一个 cURL 命令,可以“下载/抓取”网页。他们会看到来自我的 IP 的请求还是来自发出该请求的文件?当我使用篡改数据插件和查尔斯代理时,我看到有一个字段“GET /path/aFile.php HTTP/1.1
  • 当然有/path/aFile.php,因为这是您要获取的远程服务器上的文件。没有办法不告诉服务器您希望它提供什么服务并让它提供服务:) 这不是您的脚本的名称。
  • AFAIK "GET /path/aFile.php HTTP/1.1" 表示“通过 HTTP/1.1 协议获取文件 /path/aFile.php”
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-08-31
  • 2013-06-18
  • 1970-01-01
  • 1970-01-01
  • 2017-04-23
  • 2011-09-30
  • 1970-01-01
相关资源
最近更新 更多