我在S3上存储用户图像,默认情况下是可读的 .
我也需要直接从网络访问图像 .
但是,我想防止黑客强行破坏URL并下载我的图像 .
例如,我的S3图片网址是http://s3.aws.com/test.png
他们可以进行暴力测试并下载所有内容吗?
我无法将我的存储桶中的项目设置为私有,因为我需要直接从网络访问 .
知道怎么预防呢?
我在S3上存储用户图像,默认情况下是可读的 .
我也需要直接从网络访问图像 .
但是,我想防止黑客强行破坏URL并下载我的图像 .
例如,我的S3图片网址是http://s3.aws.com/test.png
他们可以进行暴力测试并下载所有内容吗?
我无法将我的存储桶中的项目设置为私有,因为我需要直接从网络访问 .
知道怎么预防呢?
2 回答
使用良好的安全性不会影响您“直接从Web访问”的能力 . 如果使用适当的权限,则可以从Web访问Amazon S3中的所有内容 .
By default, all content in Amazon S3 is private.
然后,可以通过多种方式分配访问内容的权限:
直接在 object 上(例如制作一个对象'public')
通过 Bucket Policy (例如,如果从特定范围的IP地址访问,则允许访问子目录,在特定时间内,但仅通过HTTPS)
通过分配给 IAM User 的策略(要求用户在访问Amazon S3时进行身份验证)
经过时间限制Pre-signed URL
最有趣的是 Pre-Signed URL . 这是一个计算的URL,允许在有限的时间内访问Amazon S3对象 . 应用程序可以生成预签名URL并将链接包含在网页中(例如,作为
<img>
标记的一部分) . 这样,您的应用程序将确定是否允许用户访问对象,并可以限制链接的工作持续时间 .您应该保护您的内容安全,并使用Pre-signed URLs仅允许访问您网站的授权访问者 . 你必须编写一些代码才能使它工作,但它是安全的 .