nginx拒绝下载和热链接图像

时间:2015-12-24 09:03:37

标签: nginx windows-server-2012-r2

我在Nginx 1.8上使用Windows Server 2012 R2。我正在网站上发布实时股票图表软件快照。我只使用基本的html。 我的目标是停止热链接图像,也停止下载它们。 我已尝试IIS以及Apache无法停止热链接。 我试过下面的代码来阻止热链接并获得成功。

location ~ .(jpg|jpeg|png|gif)$ {
     valid_referers blocked example.com www.example.com;
     if ($invalid_referer) {
        rewrite (.*)\.(jpg|jpeg|png|gif)$ http://abc.example.com/banned-stamp-clipart.png;
    }
}
location /html/images/ {

  ## drop rest of the world
  deny    all;
}

但是如何停止从IDM等下载管理器下载图像,例如路径http://www.example.com/images/abc.png

1 个答案:

答案 0 :(得分:1)

你无法阻止下载图片,因为如果用户决定下载,他们需要在浏览器中显示它们 - 无论如何他/她都会这样做,或者只是截取屏幕截图。

你只能让这更难。例如 - 将X-Accel-Redirect与服务器端脚本一起使用,该脚本发出用于图像查看的一次性令牌,这些脚本在html命中时生成,并在浏览器下载图像时过期(也检查那里的referer)。

图像可以分成几个部分,因此更难以使用'原样' (但你自己也难以处理)

此外,它们可以从浏览器缓存中获取,您可以尝试添加无缓存标头,但它看起来不是一个好主意。