我正在研究一種工具,最終將允許用戶從網上購買和下載文件。我想知道如何安全/安全地託管可下載文件,以便未經授權的用戶無需先購買即可下載文件。安全存儲可下載文件
用戶可以從網站上購買該文件,然後只要他們需要就可以訪問可下載文件。
這是一個問題的兩個部分:
- 我該如何去確保支付的文件不被未授權的人下載?和
- 我應該如何處理身份驗證,如果用戶檢查可以下載付費文件?
對於第一個問題,我猜測我將文件存儲在哈希目錄名稱中,以便猜測幾乎不可能? S3服務器會是一個很好的解決方案嗎?在這方面我需要注意哪些問題?
對於第二個問題,我猜,我可以在存儲了用戶的文件時,關聯像這樣購買的數據庫中創建表:
purchases table
-> id
-> hash (unique purchase identifier)
-> user (foreign key)
-> file (foreign key)
-> ...other stuff here like timestamp, etc...
...,然後使用應用程序檢查用戶做出購買,這樣的URL下載將是:
http://www.example.com/something/download/sd9f7u23ihosd8087603/
...那麼這將搜索具有散列sd9f7u23ihosd8087603
記錄,並確保它存在,它是相關的與當前用戶編輯。然後從那裏,將它們引導到文件系統上的文件...
這是一個好方法嗎?有沒有優越的解決方案?我敢肯定我在這裏缺少細節...
該應用程序是用Django編寫的,如果這對該問題有任何影響。另外需要注意的是,網站上將提供免費和付費下載。
注:這個問題是類似於我問:Having Django serve downloadable files
我不使用Apache,但NGINX,上述仍然適用? –
另外,似乎像符號鏈接是一個有點哈克...有更多的「標準」的方法呢? –