使用预先签名的URL时,S3如何检测mime类型?

时间:2019-05-08 17:26:16

标签: javascript amazon-web-services amazon-s3

在我的应用程序中,用户可以上传个人资料照片。使用预先签名的URL将图像直接发送到S3。

现在,让我们谈谈安全性。 这不安全吗?假设有人将文件从<select name="DataTables_Table" id='dataTable' aria-controls="DataTables_Table_6" class="form-control input-sm"> <option value="10">10</option> <option value="25">25</option> <option value="50">50</option> <option value="100">100</option> </select> <button onclick='selectOption("100")'>select 100</button> <button onclick='selectOption("50")'>select 50</button> <button onclick='selectOption("25")'>select 25</button>重命名为file.pdf。现在,由于扩展名,浏览器认为它是file.png文件。

所以,问题是:S3是否以任何方式检测到mime类型,并且如果文件的mime类型不同于我们指定的文件类型,则可以拒绝文件?

2 个答案:

答案 0 :(得分:0)

我认为对于保存图像,我们使用了putObject函数,而persigned url用于签名的图像路径,这一点都不重要。我认为您需要检查一下用户上传的文件类型,如果它可以接受的文件是MIME类型。之后,继续进行AWS。它可以节省您的应用程序响应时间。

答案 1 :(得分:0)

上载对象时,应用程序有责任提供正确的MIME类型。 S3不对有效负载做任何解释。

浏览器不应基于文件的扩展名来解释文件,而应仅使用Content-Type响应头中的MIME类型-S3会将其设置为创建对象时指定的任何内容。