2012-03-24 9 views
3

購入後にユーザーがダウンロードできるデータベースにアイテムが保存されている場合、ユーザーごとに異なるリンクを提供するにはどうすればよいですか?個人用のダウンロードリンクを作成する

私は考えていましたが、正しいことをする:それらのユーザーのIDに基づいて何らかの方法でハッシュされているリンクを与える。その後、私はリンクを処理するときに私はちょうど逆ハッシュ元のリンクを取得する関数です。これは正しいことですか?

これは正しいアプローチではない場合、誰かが正しい方向に私を指摘してください可能性がありますか?

+1

一時的なリンクになりますか? – safarov

+0

リンクはありません – Biscuit128

答えて

1

ハッシュ関数は逆の意味ではありません。私はlighttpd mod_secdownloadの実装について読むことをお勧めします

これはあなたに保護されたリンクを与え、一定の期間有効です。ハッシュを元に戻すことはできないため、情報のハッシュをリンク内のクリアテキスト情報(可能な場合)とともに渡す必要があります。例:

http://somesite.com/download.php?hash=<md5($secretkey.$userId.$documentId)>&usrId=<$userId>&documentId=<$documentId> 

あなたは、ダウンロードインクルードを持つプロセス、与えられたものにそれを比較するための要求を受信すると、それは同じだ場合、あなたはそれを検証考えます。

0

「ダウンロードトークン」のようなものをデータベースに保存する必要があります。ユーザーが何かをダウンロードしたいときは、新しいトークン(例えば乱数など)を作成し、ダウンロードするものが複数ある場合は、たとえばIDなどでバインドすることができます。

URLでは単純なトークンをGET変数として送信します。ユーザーがコンテンツをダウンロードしたら、データベースからトークンを削除します。

関連する問題