防止图像热链接;只允许引用和重定向请求?

时间:2011-03-28 08:04:28

标签: ruby-on-rails ruby-on-rails-3 redirect amazon-s3 amazon-web-services

我在S3上的存储桶中有一些图像。我的应用使用这些图像。我想要的是以下内容:

  • 仅允许在以下情况下访问图像:
    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/*"
                }
            }
        }
    ]
}

2 个答案:

答案 0 :(得分:3)

  • 让您的文件保密。
  • 使用链接/重定向到图像的签名网址。
    • 签名的网址包含到期日期;亚马逊不会在到期后显示您的图片。
    • 无法伪造签名的网址;如果签名丢失或无效,亚马逊将不会显示您的图片。

答案 1 :(得分:0)