想知道Flickr是如何防止人们从其网站下载图片的?他们使用了什么方法?
在图片上放置透明 .gif 图片。您仍然可以通过查看 HTML 源代码并查找图像的实际 URL 来下载实际图像。
例如,一个随机的图像: http://www.flickr.com/photos/34285128@N00/4300352607/
<img style="position:absolute;top:0px;left:0px;display:block" src="http://l.yimg.com/g/images/spaceball.gif" alt="" width="500" height="366">
这是顶部的透明图像。
<img src="http://farm5.static.flickr.com/4057/4300352607_edcc5a4a9e.jpg" alt="Say It With Flowers by *sido* (back in a few days)." title="" width="500" height="366" class="reflect">
这就是实际的图片,它显示在spaceball.gif下面。
不是为了倾销,但从概念上讲,如果您真的想锁定下载图像,您可以(我认为)。使用像asp.net mvc这样的框架,您可以使用唯一密钥标记图像,将密钥存储在内存或其他形式的持久性中,并将其作为文件名传递给客户端。在返回端,在请求文件时,您可以拦截对图像的请求,并执行查找以将其与实际文件匹配的密钥。一旦您拥有文件,您将以适当的元标记作为自定义结果返回图像(至少在mvc中,不确定如何在其他地方执行此操作)。在返回之前,您将结果标记为已查看。
这将需要服务器大量的工作,但如果您与Flickr的透明gif技术结合使用,任何人都需要付出巨大的努力才能夺取图像。
这个想法是一个正常视图会发出单个请求,任何进一步尝试直接查看图像(通过查看源并抓取URL)都将被阻止。
<./threadump>
抱歉,我突然有了一个想法,想要添加到已经回答的问题中(睡眠不足等等)。