動画を保存する Web アプリがあります。ユーザー名とパスワードを検証する Java サーブレット (https 経由) を使用しています。詳細が確認されたら、AWS S3 に保存されているビデオにユーザーをリダイレクトします。S3 がどのように機能するかを知らない人のために説明すると、S3 は単なるオブジェクトを格納する Web サービスです (基本的にはファイルを格納するものと考えてください)。また、https を使用します。明らかにこれを機能させるために、s3 オブジェクト (ファイル) はパブリックです。数字と文字でいっぱいのランダムな名前を付けました。
したがって、サーブレットは基本的に次のようになります。
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 にあるファイル名に十分にランダムな名前を付けたと仮定すると、他の何よりも安全であるように思えますか?