11

就在最近,谷歌推出了他们的图片搜索的新界面。从 2013 年 1 月 25 日起,全尺寸图像直接在 Google 内部显示,无需将访问者引导至源站点。我遇到了一个网站,该网站显然开发了一种复杂的方法,通过动态引入某种水印来防止用户从 Google 抓取图像。要查看此内容,请在新的 Google 图片搜索界面中搜索“fansshare.com”的图片。这个链接应该可以工作:谷歌图片搜索。如果没有,只需在 Google 搜索输入字段中输入“site:fansshare.com”。不过,请务必使用新的搜索界面。

fanshare.com 是如何做到这一点的?我想不通...

更新:

fanshare.com 将 GET 参数添加到他们所有的图像 URL,例如?rnd=69。示例图片网址: http: //fansshare.com/media/content/570_Jessica-Biel-talks-Kate-Beckinsale-Total-Recall-fight-5423.jpg?rnd=62

此图像 URL 可以使用几个调用或几秒钟,然后重定向到缓存的带水印图像: http ://fansshare.com/cached/?version=media/content/570_Jessica-Biel-talks-Kate-Beckinsale -Total-Recall-fight-5423.jpg&rnd=5810

编辑:

我们终于成功地完全模仿了 FansShare 的热链接保护,我们在以下内容广泛的博客文章中发布了我们的发现:

http://pixabay.com/en/blog/posts/hotlinking-protection-and-watermarking-for-google-32/

4

5 回答 5

6

有一个解决方案,但就像其他解决方案一样,由 Google 将其解释为根据自己的意愿进行伪装和禁止。这是一个很长的问题,可能需要进一步修改才能为您的案例工作。(提前抱歉的长度)

设置

为了这个例子,让我们这么说:

  • 网站:www.thesite.com
  • ImageURL 基础:images.thesite.com

(但 ImageURL 基础很容易www.thesites.com/wp-content/uploads

目标

我们的目标是做到这一点,(1)如果谷歌图像搜索请求全尺寸图像,则仅显示带有水印/叠加层的图像,并且(2)不要破坏以前工作的东西。

解决方案

所以理论上的解决方案如下。

1)检查用户代理,如果它包含,Googlebot则提供“陷阱”URL。陷阱 URL 是您当前的图像 URL,但稍有更改,因此您可以区别对待它,而不是当前的正常 URL:

http://images.thesite.com/wallpapers/awesome.jpg

您应该为 Googlebots 打印:

http://cacheimages.thesite.com/wallpapers/awesome.jpg

cacheimages你想要的东西在哪里)

2)现在是主菜;您应该能够将请求定位到http://cacheimages.thesite.com/并具有如下行为的脚本:

 If the request comes from a bot (check user-agent headers)
     Then serve the normal image without watermark
 Else (if the request seems to be from a normal user)
     Then check the referer: If it's from google (but NOT http://www.google.com/blank.html)
          Redirect to the Post of the image (Note 1.)
     Else if the refer is your site
          Show the raw normal image
     Else (any other referer, including http://www.google.com/blank.html)
          Show watermarked image (Note 2.)

注 1:当人们点击“查看原始图片”或图片本身时会发生这种情况

注意 2:当人们尝试从谷歌图片搜索结果中查看全尺寸图片时会发生这种情况(如果他们以某种方式到达图片的陷阱 url)

3)如果用户代理是 Googlebots,您可以 HTTP 将旧图像重定向到新的 ImageURL 基础,因此覆盖/水印技巧可以更快地开始处理旧图像(如果您使用图像子域,甚至可以使用 Google 网站管理员工具)并且您是确保保留 SEO 汁液。

进一步行动

如果你想认真一点,你可以做更多的改变。

  1. 而不是显示带水印的图像重定向到更动态http://cacheimages.thesite.com/preview?p=/wallpapers/awesome.jpg&r=23535 的 url 或更现代地使用 HTTP 标头来无索引: X-Robots-Tag: noindex
  2. 当然缓存带水印的图像
  3. 检查Accepthttp 标头以查找我没有想到的情况,并相应地提供图像或重定向图像帖子。

笔记

您可能还需要考虑国际流量,而不是google.com您想检查google.[a-z-\.]+/

结论

这可以适用于任何系统,我是为在子域上有图像的系统做的,所以它可能不会与 wordpress 等其他系统完全相同。另外,我相信谷歌会改变他们的图像在接下来的几个月中搜索以解决此问题。

可以在Github上找到该想法的未经测试的示例实现。

免责声明

这尚未经过彻底测试,您可能会被禁止,它仅用于研究和教育目的。我不对任何损坏等负责。

于 2013-02-13T18:13:14.673 回答
2

一些新的 wordpress 插件可用于处理 google 和 bing 热链接图像:

http://wordpress.org/extend/plugins/imaguard/ http://wordpress.org/extend/plugins/google-break-dance/

于 2013-02-11T05:53:47.893 回答
0

嗨,这里有一个新插件可以解决 WordPress 上的这个问题

https://github.com/mompracem/direct-images-redirect

它不使用带水印的图像,而是将尝试直接访问图像的用户重定向到该图像最初附加到的帖子或页面。

这是一个新插件,因此可能有一些错误,请通过 github 测试并报告问题,谢谢

于 2013-02-23T14:04:48.623 回答
0

嗯...关于向 Googlebots 发送不同的图片或网址,与普通用户相比是不行的!图像应该是静默重定向()。

对于 Wordpress 博客,我认为WP-PICShield是最好的选择之一!

  • 缓存支持,
  • 直通图像请求
  • 反 IFRAME 保护,
  • 自定义图像透明度
  • 自定义PNG水印
  • 图像上的主机名作为 url 和/或 QR-BarCode !!!
  • 将直接链接重定向到:附件、单个/图库或主页
  • 防止未经授权的请求
  • 避免大文件的内存错误
  • 允许在线翻译
  • 允许社交网站的分享按钮:Facebook、Pinterest、Thumblr、Twitter、Google Plus
  • 通过 RPC 允许 Wordpress,通过 OAuth 允许 Twitter
  • 手动清除缓存脚本避免 php 限制执行
  • 允许远程ip列表
  • +++ CDN 工具和帮助

和更多...

于 2013-02-24T01:59:33.500 回答
0

我终于找到了一种方法来阻止 Google 图片搜索在不使用插件的情况下对我的照片进行热链接。我希望这对仍在处理谷歌这一完全邪恶决定的后果的人有所帮助。

于 2013-07-31T00:59:10.027 回答