如何防止在公共存储中热链接到我的文件?

时间:2017-09-07 18:37:34

标签: wordpress nginx google-cloud-storage hotlinking

我有一台NGINX服务器(带有wordpress网站)并使用Google Cloud Storage来提供我的内容。我注意到网站热链接到我的文件而没有任何归属。

我想我需要:

  1. 让我的链接在一段时间后过期,以便在一段时间后不再有好处
  2. 我的wordpress网站传递AUTH TOKEN以允许访问我的文件
  3. 我的谷歌云端存储不能提供文件,除非它来自正确的REFERRER?
  4. 有人会如何做到这一点?

2 个答案:

答案 0 :(得分:1)

有几种方法可以控制对GCS存储桶和/或单个对象的访问,您需要研究它们以确定哪种方法最适合您的情况。来自Access Control Options

  

您可以控制谁有权访问您的云端存储分区和   对象以及它们具有的访问级别。以下是摘要   您可以使用的访问控制选项,以及指向的链接   了解更多关于每一个:

     
      
  • Identity and Access Management (IAM) permissions:授予对存储桶的访问权限以及对存储桶对象的批量访问权限。我是   权限使您可以广泛控制项目和存储桶,但是   不能对个别物体进行细粒度控制。供参考   IAM特定于云存储的权限和角色,以及哪些   权限允许用户在存储桶上运行JSON和XML方法   对象,请参阅IAM Reference pages。要学习如何使用IAM   权限,请参阅Using IAM Permissions

  •   
  • Access Control Lists (ACLs):为各个存储桶或对象授予用户读写权限。在大多数情况下,您应该使用   IAM权限而不是ACL。仅在需要时使用ACL   对单个对象进行细粒度控制。要学习如何使用   ACL,请参阅Create and Manage Access Control Lists

  •   
  • Signed URLs (query string authentication):通过您生成的URL为对象提供对时间有限的读取或写入权限。任何人   与您共享URL的人可以访问该对象的持续时间   您指定的时间,无论他们是否拥有Google   帐户。了解如何创建签名网址:

         
  •   
  • Signed Policy Documents:指定可以上传到存储桶的内容。政策文件可以更好地控制规模和内容   类型和其他上传特征比签名的URL,并且可以   网站所有者用来允许访问者将文件上传到Google   云存储。

  •   
  • Firebase Security Rules:使用Firebase SDKs for Cloud Storage为移动和网络应用提供基于属性的精细访问控制。例如,您可以指定可以上载的人员或   下载对象,对象可以有多大,或者对象何时可以   下载。

  •   
     

这些选项并不相互排斥。例如,您可以使用   ACL通常提供对存储桶的私有访问权限,但随后创建一个   签名的URL或策略文档,允许您选择访问的任何人   存储桶中的资源,绕过ACL机制。

答案 1 :(得分:-1)

将以下信息放入.htaccess文件

RewriteEngine on
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC] 
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain2.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ http://hpmouse.googlepages.com/hotlink.gif [NC,R,L]

第2行& 3是否允许链接图像的网站。 第4行:文件格式阻止链接