【问题标题】:Preventing hotlinking by image resolution with .htaccess and PHP?使用 .htaccess 和 PHP 防止通过图像分辨率进行热链接?
【发布时间】:2014-08-15 12:33:41
【问题描述】:

完全防止盗链很容易,但是可以根据图像分辨率来做到吗?我不介意人们对较小的图像进行热链接,但我有几个 +30 MiB 的图像会增加我的带宽使用量,所以我想特别防止对大图像进行热链接。如果可能的话,我想用 PHP 来做这个,因为我所有的图像都已经通过 PHP 脚本显示了。

【问题讨论】:

标签: php image .htaccess resolution hotlinking


【解决方案1】:

热链接检测通常基于检查引用者(原文如此!)。

您可以在交付的 php 脚本中轻松添加文件大小检查:

if (filesize(FILENAME) > 30*1024*1024) {
    if ($_SERVER['HTTP_REFERER'] != '' && strpos($_SERVER['HTTP_REFERER'],'http://www.yourdomain.com/')===0) {
       header("Status: 500);
       echo "Hotlinking not allowed";
       exit(0);
    }
}

参见PHP code for anti hotlinking,还有一些其他使用 Cookie 的示例(即,一个 php 会话来检查用户是否有权查看图片)。

然而,Hotlinking 保护总是有一些可能的限制:并非所有客户端都发送 http 引用(原文如此!),尤其是在 https 上,这些引用经常丢失,并且并非所有客户端都接受 cookie。

【讨论】:

  • 谢谢。我最初并没有意识到,但文件大小比分辨率更重要。
猜你喜欢
  • 2012-08-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多