【问题标题】:Use PHP Curl to get around hotlink protection使用 PHP Curl 绕过热链接保护
【发布时间】:2015-03-27 16:14:21
【问题描述】:

我正在开发一个与我访问的论坛交互的 Android 应用程序。论坛的工作人员允许使用此应用,但不会提供可使用的 API。

为了获得我需要的信息,我使用了一个中间 PHP 脚本,它使用 CURL 抓取论坛。一切都很好,除了一个小细节。

要查看主题,我会抓取所有我需要的数据,例如海报名称、日期和帖子内容。但由于存储在他们服务器上的图像受热链接保护,我无法看到它们。有趣的是,查看单个图像是没有问题的,但只要将它们放在上下文中,它们就会被网站的版权图像所取代。

我感觉网站更改了我发送的 HTTP 引用(为空),因此以版权图像响应(热链接保护)。

谁能给我一些提示如何解决这个问题?

我使用的代码:

$url = 'someurliwanttoscrape';
$cookie_string = 'somecookies';
$useragent = 'someuseragent';
$timeout = 60;

$rawhtml = curl_init(); 
curl_setopt ($rawhtml, CURLOPT_URL,$url);  
curl_setopt ($rawhtml, CURLOPT_RETURNTRANSFER, 1);      
curl_setopt ($rawhtml, CURLOPT_REFERER, '');            
curl_setopt ($rawhtml, CURLOPT_COOKIE, $cookie_string);     
curl_setopt ($rawhtml, CURLOPT_CONNECTTIMEOUT, $timeout);  
curl_setopt ($rawhtml, CURLOPT_USERAGENT, $userAgent);  
$output = curl_exec($rawhtml);  
curl_close($rawhtml); 

每当我将图像的网址放入其中时,这都有效。没问题,我可以看到图像,没有防盗链。但只要我将图片嵌入的 URL 放入文本中,热链接保护就会启动。

【问题讨论】:

  • 弄清楚热链接保护的工作原理并破坏它。如果是推荐人,则对其进行欺骗。很简单。
  • 如果我们能看到真实世界的样本(如论坛)会有所帮助
  • 它与论坛开发人员确认的推荐人以及我的结果一起使用。正如我所看到的个别图像。为了隐私,我宁愿不分享论坛。还有w.r.t。员工的意愿。

标签: php curl hotlinking spoofing referer


【解决方案1】:

您可以使用curl_setopt 告诉 cURL 要发送什么引荐来源网址:

curl_setopt($ch, CURLOPT_REFERER, 'http://www.google.com');

请参阅documentation 了解更多详情,但仅此而已

【讨论】:

  • 我已经多次尝试过这样的代码。但它不会起作用。我认为为了下载图像,总是会更改引荐来源网址。因为这是对图像的更间接请求。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-22
  • 2020-02-19
  • 1970-01-01
  • 2014-05-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多