、劫持点击Google图片中的“查看原图”按钮
不幸的是,直接链接的图像并不是谷歌新界面的唯一问题:为了确保用户确实不再需要查看任何发布商网站,谷歌还在搜索结果详细信息旁边添加了一个名为“查看原始图像”的按钮。
Google 图片中的“查看原始图片”按钮
,以便在浏览器中下载。当然,我们不希望出现这种情况,我们会采取以下措施:如果 Google 已通过陷阱 URL被识别为图像请求的来源,我们还会检查 HTTP 引荐来源网址的内容。如果它包含“ .google.com ”而不是“ .google.com/blank.html ”,我们会将 Google 的请求重定向到放置图像的文章/帖子。这种方法甚至适用于 SSL Google 搜索。
陷阱警告:客户端浏览器不得缓存所提供的带水印
的图像!否则,单击“查看原始图像”只会从浏览器的缓存中获取带水印的图像,而不会启动新的请求。缓存预防是通过设置以下 HTTP 标头字段来实现的:
缓存控制:无缓存,必须重新验证
对于以匿名模式(被阻止的引荐来源网址)冲浪的用户,此重定向将失败。但是,当使 科威特手机号码列表 用基于 URL 的水印时,他们只会在 Google 上找到图像的带水印副本。因此,为了获得原始图像,此类用户仍然必须访问发布者的网站。
4. 涵盖Google.de、Google.fr、Bing等
尚未更新所有 Google 区域设置域。特别是 Google.de(德国)和 Google.fr(法国)仍在使用“旧”界面。因此,我们建议(另外)在 HTML 文档正文中引入所谓的Framekiller :
<script>if (top!= self) top.location.replace(location);</script>
这个简短的 JavaScript 片段可防止您的网站
嵌入 iframe 中。因此,点击 Google.de/Google.fr 内的图像将直接打开发布商的网站,而不是显示封装在预览框架内的图像。此外,这种基于客户端的重定向还适用于大多数 Bing 图像搜索结果以及尝试嵌入您的内容的其他网站。
应用盗链保护 · Pixabay上的应用
总结上述方法,以下几行详细说明了我们如何处理 Pixabay 上的所有请求和网址:
搜索引擎抓取工具(例如 Googlebot 和 bingbot)会在我们的帖子中查找纯图像 URL。对于其他/真实访问者,我们只需将 GET 参数“i”附加到所有相关图像 URL 即可。因此,“tree.jpg”变为“tree.jpg?i”。这个差异足以正确 KH 列表 检测 Google 图像请求。爬虫通过 HTTP 用户代理(参见上文)进行识别。此外,为了授予 Facebook 访问我们的无水印图像的权限,我们还将 GET 参数“i”附加到所有 og:image 标签。
已预先为所有现有图像创建水印,并自动创建新上传的带水印的副本。我们使用 Python 来完成此任务,如果您想了解详细信息,只需在本文的评论中询问即可。
我们的 NGINX 服务器配置中的 URL 重写根据以下方案进行:
如果 HTTP 引荐来源网址包含“.google”。而不是“.google.com/blank.html”
然后将陷阱 URL 重定向到图像的帖子(“查看原始图像”按钮)
否则,如果请求来自抓取工具(HTTP 用户代理)或 GET 参数“i”存在