我有一個存儲視頻的網絡應用程序。我正在使用驗證用戶名和密碼的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=「我」的來源& Password =「randomletters」。乍一看,它應該像其他任何東西一樣安全,假設我給出了坐在AWS s3上足夠隨機名稱的文件名?
當你說「任何人」時,你的意思是什麼?我讓用戶使用用戶名和密碼登錄我的網站。視頻標籤由javascript生成,並將用戶名和密碼添加爲參數(我應該在原始帖子中添加該標籤)。因此,用戶可以在技術上做你正在說的內容,但他們也可以將密碼分發給所有的朋友。從實際角度來看,安全缺陷會是什麼? – user1276273 2013-04-05 17:58:26
如果用戶將密碼提供給每個人,您可以在服務器端注意到同一個帳戶從許多不同的IP加載大量視頻並阻止此帳戶。如果有人能夠在未登錄的情況下訪問視頻,則無法阻止任何人,並且登錄無效。瞭解視頻的實際URL只是在瀏覽器中打開F12的一個元素,轉到網絡選項卡,並查看執行了哪些HTTP請求。 – 2013-04-05 21:41:54
我不認爲動態加載的