我有一个存储视频的网络应用程序。我正在使用验证用户名和密码的 java servlet(通过 https)。验证详细信息后,我将用户重定向到存储在 AWS S3 中的视频。对于那些不知道 S3 是如何工作的人来说,它只是一个存储对象的 Web 服务(基本上可以将其视为存储文件)。它还使用 https。现在显然为了使这项工作,s3 对象(文件)是公开的。我给了它一个充满数字和字母的随机名称。
所以servlet基本上是这样的:
void doGet(request, response){
if (authenticateUser(request.getParameter("Username"), request.getParameter("Password")){
response.sendRedirect("https://s3.amazonaws.com/myBucket/xyz1234567.mp4");
}
}
这显然是简化的,但它得到了重点。这里有什么非常明显的安全漏洞吗?视频标签显然会有类似https://www.mysite.com/getVideo?Username= "Me"&Password="randomletters" 的来源。乍一看,假设我给位于 AWS s3 的文件名提供足够随机的名称,它似乎应该和其他任何东西一样安全?