我一直试图在几个小时内找到这个问题的答案,但还没有想出一个确凿的答案。我希望有人能够对我的问题有所了解。请考虑以下示例AWS S3 URL:
在我的具体示例中,上面的URL是在S3上查看图像的请求,我直接在HTML img标记中公开,而Amz-Credential中的用户具有读写权限。该URL也设置为在10分钟后过期。
通过此URL直接链接到图像是安全的,或者是否有可能在这10分钟内,此URL中的签名可用于恶意制作的REST请求,以删除或修改图像而不是查看它?
我确实怀疑不同的行为会有不同的签名使这不可能,但鉴于我对AWS auth的理解非常有限,我认为最好还是要求以防万一。
我知道我可以创建一个只读用户(额外的复杂性)或隐藏我自己的网络应用程序上的控制器操作背后的S3 URL(需要2个加载每个图像的请求,使其效率低下),但我宁愿在诉诸其中任何一种方法之前,先了解我目前的方法是否安全。
谢谢你的时间。 :)
答案 0 :(得分:2)
如果您的预签名网址具有PUT或DELETE权限,则有人可能会尝试让Signature + AccessKeyId覆盖或删除您的对象。
只是make sure您正在使用只读权限对网址进行签名,我猜你还不错。