2012-08-30 24 views
-2

我有一個senerio我必須加密的URL,以便用戶不能讀取。 例如我在服務器端有一個網址,加密URL的用戶不能讀取

http://testserver/admin/read/myvideo.mp3 

這個網址我在HTML頁面呈現,使我的JavaScript可以把它撿起來,並傳遞給我的球員。

現在的問題是,任何人都可以從我的頁面的查看源中看到該URL。

我要的是安全,像我渲染爲HTML之前,在我的java腳本中使用相同的邏輯來再次解密,發送給我的球員

任何機構可以告訴我加密,在服務器端任何在雙方工作的發動機,我都不需要做很多工作?

編輯: 我知道現在的問題是它會從提琴手,JS和消防的Bug可見,但不是那麼容易讀作比較

+3

旁邊沒有意義,因爲任何良好的網絡分析工具將能夠看到未加密的請求。事實上,Firebug和Chrome都可能會在網絡屏幕上顯示它。 – Lloyd

+4

您的JavaScript也可供用戶使用,您如何防止有人通過它並解密URL? – Habib

+0

@dystroy Yeh我後來補充說,他們會想。 – Lloyd

回答

1

如果你的JavaScript將解密的URL,然後主管歹徒也可以使用該JavaScript解密URL。你應該檢查你的文件請求的來源。

但是,如果你真的想這樣做,那麼你可以使用Vigenere cipher。過去(多年前)我曾經使用過這個技術,當時我需要讓某個人不可能讀取/解密。在我的情況下,它適合我的需求,因爲用戶基礎非常謹慎地控制和監督。你無法真正讓電腦無法破解。

我發現了一個在線JavaScript實現。

看一看這裏:http://www.nayuki.io/page/vigenere-cipher-javascript

輸入網址,也是一個關鍵。你會發現它不是一個簡單的替代密碼。

例如與user788592的關鍵,http://testserver/admin/read/myvideo.mp3blxg://nwwkmwvmyj/eugar/iysh/dsnmuyg.qg3

+4

這不會阻止攻擊者使用網絡跟蹤工具(WireShark,Fiddler等)來查找URL。其次,我甚至不認爲它會阻止某人手動解密它 - 在JavaScript中你有有效載荷,算法和祕密密鑰,所以它不應該花很長時間來翻轉有效載荷。根據定義,您必須使用雙向加密,因爲客戶端需要明文URL來發出請求。 –

+0

@RB:這是絕對正確的。我並不是說這是遠程安全的,但它可能會阻止很多人。但是如果你或我想要捕捉他的網址,他可能無法阻止它!雖然他可以檢查我們要求他們從哪裏... –

+3

如果我們只是想「阻止很多人」,那麼一個簡單的替代密碼就可以工作 - 即使有完整的實現細節,我也懷疑99%的破解能力;-) –

3

也許你應該考慮產生像一次性網址,它得到的第一個GET後無效。這將禁止共享該網址。

+0

我更喜歡這個解決方案。雖然對於流式視頻來說可能效果不佳。 – Lloyd

+0

也許你可以離開的網址更長的時間有效只爲首先訪問它的IP或類似的東西。 – kannix