在Web应用程序中暴露AWS S3签名的URL?
问题描述:
我一直在试图找到这个问题的答案现在几个小时,但还没有设法得出一个决定性的答案。我希望这里有人能够阐明我的问题。考虑下面的实施例AWS S3 URL:在Web应用程序中暴露AWS S3签名的URL?
以我具体例如,URL是到S3其中我在一个HTML img标记直接暴露观看图像的请求,并且在AMZ用户-Credential具有读取和写入权限。该网址也设置为在10分钟内过期。
是否可以直接通过此URL链接到图像,或者有可能在这10分钟内,来自此URL的签名可用于恶意制作的REST请求中,以删除或修改图像,而不是观看它?
我怀疑不同的动作会有不同的签名,这使得这个不可能,但鉴于我对AWS auth的理解非常有限,我认为最好问一下以防万一。
我知道我可以创建一个只读用户(额外的复杂性)或隐藏S3 URL后面我自己的web应用程序的控制器操作(需要2个总请求加载每个图像,使之成为低效率的),但我会而是要求在采取这些措施之前,先了解我目前的方法是否安全。
谢谢你的时间。 :)
答
如果您的预签名url具有PUT或DELETE权限,则某人可能会尝试让Signature + AccessKeyId覆盖或删除您的对象。
只是make sure你正在用只读权限对url进行签名,我猜你很好。