【问题标题】:How can I prevent hot-linking to my files in public storage?如何防止热链接到公共存储中的文件?
【发布时间】:2017-09-08 11:30:37
【问题描述】:

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

我想我需要:

  1. 让我的链接在一段时间后过期,以便在一段时间后失效
  2. 让我的 wordpress 网站传递一个 AUTH TOKEN 以允许访问我的文件
  3. 我的谷歌云存储不提供文件,除非它来自正确的 REFERRER?

有人会如何做到这一点?

【问题讨论】:

    标签: wordpress nginx google-cloud-storage hotlinking


    【解决方案1】:

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

    您可以控制哪些人有权访问您的 Cloud Storage 存储分区以及 对象以及它们具有的访问级别。下面是一个总结 您可以使用的访问控制选项,以及指向 详细了解每个:

    • Identity and Access Management (IAM) permissions:授予对存储桶的访问权限以及对存储桶对象的批量访问权限。我是 权限使您可以广泛控制您的项目和存储桶,但 不是对单个对象的细粒度控制。供参考 特定于 Cloud Storage 的 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 帐户。了解如何创建签名 URL:

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

    • Firebase Security Rules:使用 Firebase SDKs for Cloud Storage 为移动和 Web 应用程序提供基于属性的精细访问控制。例如,您可以指定谁可以上传或 下载对象,对象可以有多大,或者对象什么时候可以 已下载。

    这些选项不是相互排斥的。例如,您可以使用 ACL 通常授予对存储桶的私有访问权限,然后创建一个 允许您选择的任何人访问的签名 URL 或政策文件 桶内的资源,绕过ACL机制。

    【讨论】:

    • 是的,签名 URLS 正是我想要的。感谢您的帮助
    【解决方案2】:

    将以下信息放入您的 .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 行:阻止链接的文件格式

    【讨论】:

    • 我使用 NGINX,所以没有 HTACCESS,即使我这样做了,视频也在 Google Cloud Storage 上。无论如何,谢谢。
    猜你喜欢
    • 1970-01-01
    • 2012-07-16
    • 2021-01-19
    • 2013-08-24
    • 1970-01-01
    • 2012-08-27
    • 1970-01-01
    • 1970-01-01
    • 2021-09-08
    相关资源
    最近更新 更多