防止Google图片搜索中的图片热链接

Sim*_*ger 11 redirect search-engine hotlinking

就在最近,谷歌推出了他们的图像搜索的新界面.从2013年1月25日起,全尺寸图片会直接显示在Google内部,而不会将访问者发送到源网站.我遇到了一个网站,显然已经开发出一种复杂的方法来阻止用户通过动态引入某种水印来从Google获取图像.要查看此信息,请通过"fansshare.com"在新的Google图片搜索界面上搜索图片.此链接应该有效:Google图片搜索.如果没有,只需在Google搜索输入字段中输入"site:fansshare.com"即可.但请务必使用新的搜索界面.

fansshare.com如何实现这一目标?我无法理解......

更新:

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

此图片网址适用于几个电话或几秒钟,之后会重定向到缓存的水印图片:http: //fansshare.com/cached/?version = media/content/570 -Jessica-Biel-talks-Kate-Beckinsale -总召回拼-5423.jpg&RND = 5810

编辑:

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

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

Sev*_*Sev 6

有一个解决方案,但就像其他解决方案一样,谷歌可以根据自己的意愿将其作为隐形和禁令.这是一个漫长的过程,可能需要进一步修改以适应您的情况.(提前告诉我们的长度)

建立

为了举例,我们只说:

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

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

目标

我们的目标是实现这一目标,(1)如果从谷歌图片搜索请求的话,全尺寸图像只显示水印/叠加,(2)不破坏以前工作的东西.

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

1)检查用户代理,如果它包含,Googlebot则提供"陷阱"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.)
Run Code Online (Sandbox Code Playgroud)

注1:当人们点击"查看原始图像"或图像本身时,就会发生这种情况

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

3)如果用户代理是Googlebots,你可以通过HTTP将旧图像重定向到新的ImageURL基础,这样叠加/水印技巧就可以更快地开始处理旧图像(如果你使用子域名用于图像,甚至可以使用Google网站管理员工具)一定要保留SEO果汁.

进一步行动

如果你想要认真,你可以做更多的改变.

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

注意

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

结论

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

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

免责声明

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

  • 关于热链接映像请求:使用SSL(HTTPS)进行搜索时,请求中不会附加任何引用程序.当您使用普通HTTP时,谷歌会附加一个特殊页面作为安全引用者(`http:// www.google.com/blank.html`).在"原始形象"上,你得到真正的推荐者; `http:// www.google.com /`(没有/blank.html) (2认同)