如果我的項目存儲在數據庫中,用戶購買後可以下載,我如何提供每個用戶不同的鏈接?創建個性化的下載鏈接
我在想,會做的正確的事情是:給他們一個鏈接,以某種方式基於他們的用戶ID例如哈希。然後,當我處理鏈接,我給他們我只是反轉哈希函數來獲取原始鏈接。這是做事的正確方法嗎?
如果這不是正確的方法,有人請指出我的方向是正確的嗎?
如果我的項目存儲在數據庫中,用戶購買後可以下載,我如何提供每個用戶不同的鏈接?創建個性化的下載鏈接
我在想,會做的正確的事情是:給他們一個鏈接,以某種方式基於他們的用戶ID例如哈希。然後,當我處理鏈接,我給他們我只是反轉哈希函數來獲取原始鏈接。這是做事的正確方法嗎?
如果這不是正確的方法,有人請指出我的方向是正確的嗎?
散列函數並不意味着被顛倒。我建議閱讀關於lighttpd mod_secdownload
實施
它給你一個受保護的鏈接,有效的一段時間。由於散列無法逆轉,因此您需要在鏈接中傳遞散列信息以及明文信息(如果可能)。例如:
http://somesite.com/download.php?hash=<md5($secretkey.$userId.$documentId)>&usrId=<$userId>&documentId=<$documentId>
當您收到下載請求,過程中有,也比較給定的一個,如果當時你認爲這是證明它是平等的。
你應該在你的數據庫中存儲諸如「下載令牌」之類的東西。當用戶想要下載某個內容時,您會創建一個新的令牌(例如一個隨機數),並且如果有多個要下載的內容,可以使用它們的ID將其綁定到它們。
在URL中簡單地將令牌作爲GET變量發送。用戶下載內容後,從數據庫中刪除令牌。
它會暫時鏈接嗎? – safarov 2012-03-24 19:13:29
沒有永久鏈接 – Biscuit128 2012-03-24 19:24:12