2 回答

TA贡献1829条经验 获得超4个赞
您的存储桶策略是这样说的:
任何AWS 凭证
可以进行任何S3 API 调用
但仅限于
img
和audio
目录中的对象
这意味着我可以使用我的AWS 凭证读取、上传和删除该存储桶中的对象。它会类似地解释为什么对象已被外部各方上传/修改。
如果您的目的是使对象公开可读,则应使用s3:GetObject
:
{
"Version":"2012-10-17",
"Statement":[
{
"Sid":"PublicRead",
"Effect":"Allow",
"Principal": "*",
"Action":"s3:GetObject",
"Resource":[
"arn:aws:s3:::examplebucket/audio/*",
"arn:aws:s3:::examplebucket/img/*",
]
}
]
}

TA贡献1946条经验 获得超3个赞
detectByFilename
是检查 MIME 类型的最糟糕的方法。
/home/test/myfile.html.jpg
会返回 jpg,即使它不是合法的 jpg 文件。相反,您应该使用\finfo(FILEINFO_MIME)
并读取文件流来获取 MIME 类型。
不过,这是否会带来重大问题,取决于您在上传图像后如何嵌入图像。如果您将原始文件数据嵌入到您的页面中,这将使您容易受到 CSRF 攻击。
- 2 回答
- 0 关注
- 103 浏览
添加回答
举报