防止图像盗链;只允许referer和重定向请求?

问题描述:

我在S3上的存储桶中有一些图像。我的应用使用这些图像。我想是这样的:防止图像盗链;只允许referer和重定向请求?

  • 只允许被访问的图像,如果:
    1. 引用者是我的地盘 - 这我已经可以做一个水桶政策
    2. 用户被重定向从我的网站

的问题是这里的重定向,因为重定向时,没有参考发送到Amazon S3。

有没有办法来限制访问我的S3文件在我上述的方法是什么?

我当前桶的政策是这样的:

{ 
    "Version": "2008-10-17", 
    "Id": "e9c9be4d-cdfc-470c-8582-1d5a9e4d04be", 
    "Statement": [ 
     { 
      "Sid": "", 
      "Effect": "Allow", 
      "Principal": { 
       "AWS": "*" 
      }, 
      "Action": "s3:GetObject", 
      "Resource": "arn:aws:s3:::mybucket/*", 
      "Condition": { 
       "StringLike": { 
        "aws:Referer": "http://myapp.com/*" 
       } 
      } 
     } 
    ] 
} 
+1

能否请您提供关于桶政策(有趣的是在本身) – Dimitris 2011-04-01 07:16:35

+0

增加了我目前的桶政策的一些信息。 – Ariejan 2011-04-03 09:33:02

  • 让你的文件是私有的。
  • 使用签署了链接网址/重定向到您的图像。
    • 签名的网址包括一个到期;亚马逊不会在过期之后展示你的形象。
    • 签署的网址无法伪造;如果签名缺失或无效,亚马逊将不会显示您的图片。
+0

签名的URL可能是这里最好的解决方案。我会进一步研究它。 – Ariejan 2011-04-03 09:33:31

+0

事实证明,这是完美的作品!我为用户提供了一个只有10秒有效的URL(足以在浏览器中加载图像)。 – Ariejan 2011-04-03 10:32:55

+0

你可能需要10分钟。它可以采取的方式超过10秒加载网页,这取决于你是什么或网络你是从哪里连接上(假设您正在加载在手机上的网页)。但即使是10分钟,也无法让其他人使用您的图像。 – yfeldblum 2011-04-03 14:56:59

+0

这实际上是关于阻止特定的推荐人。 – Ariejan 2011-04-03 09:30:30