2011-06-23 7 views
0

私は最終的にユーザーがWebからファイルを購入してダウンロードできるツールを開発中です。ダウンロード可能なファイルを安全に/安全にホスティングして、権限のないユーザーが最初にファイルを購入せずにファイルをダウンロードすることができないようにするにはどうすればよいでしょうか。セキュリティで保護されたダウンロード可能なファイルを保存する

ユーザーはWebサイトからファイルを購入し、必要なだけダウンロード可能なファイルにアクセスできます。

これは、2つの部分の質問です:私は確信して支払ったファイルを作って行くことができますが、不正な人々によってダウンロードされていませんか?、

  • はどのようにした場合、ユーザーに確認するための認証を処理する方法

    1. 有料のファイルをダウンロードできますか?

    最初の質問では、ファイルをハッシュされたディレクトリ名に格納して、推測が不可能に近いと推測していますか? S3サーバーはここで良い解決策になるでしょうか?この点について私は何の懸念を意識する必要がありますか? 2番目の質問については

    、私はそうのようなファイルにユーザーを関連付ける購入、格納するデータベース内のテーブルを作成することができることを推測している:

    purchases table 
        -> id 
        -> hash (unique purchase identifier) 
        -> user (foreign key) 
        -> file (foreign key) 
        -> ...other stuff here like timestamp, etc... 
    

    を...そして使用します

    その後、ハッシュsd9f7u23ihosd8087603を持つレコードを検索し、それが存在していることを確認し、それことでしょう

    http://www.example.com/something/download/sd9f7u23ihosd8087603/

    ...:ユーザーが購入したので、ダウンロードするURLがあろうと、アプリケーションチェックアソシエートです現在のユーザーと編集します。そこから、ファイルシステム上のファイルにそれらを向ける...

    これは良い方法ですか?優れたソリューションはありますか?私はここに詳細をしないのですが、その問題上の任意のベアリングを持っている場合...


    アプリケーションは、ジャンゴで書かれていることを確認しています。もう一つの注意点は、サイト上で無料ダウンロードと有料ダウンロードの両方が利用できることです。

    注:Having Django serve downloadable files

  • 答えて

    -1

    1 ...場合)はApacheによって直接アクセスすることはできませんディレクトリ内のファイルを保存してください:この質問は私が求めていたものと似ています。あなたの実際のファイルを指すビューは、あなたのハッシュを使用して(ユーザー固有のシンボリックリンクを作成する)「ファイルを購入」し、Apacheがシンボリックリンク

    3を介してファイルを提供できるようにするためにリダイレクト)を実行して

    2)作成されてからx時間後にシンボリックリンクを削除するcronジョブ。

    +0

    私はApacheを使用していませんが、NGINXは上記の内容を適用しますか? –

    +0

    また、シンボリックリンクはちょっとハッキーなようです...もっと標準的なアプローチがそこにありますか? –

    関連する問題