1

私は、ユーザーがデジタル コンテンツを購入できるサイトに取り組んでおり、安全なダウンロードを提供しようとする方法を実装しています。

CodeIgniter を使用して、次のようなダウンロードを強制しています。

$file = file_get_contents($path);

force_download("my_file_name.zip", $file);

もちろん、ダウンロードを提供する前に、ユーザーがデータベースを使用してファイルにアクセスできることを確認しますが、これらのファイルをより安全にする方法があるかどうか疑問に思っていました.

ファイルパスを作成するために8〜10文字のキーを使用しているため、ファイルへのURLを正確に把握するのは簡単ではありません..http://mysite.com/as67Hgr/asdo0980/uth89.zipの代わりにhttp://mysite.com/downloads/my_file.zip.

また、.htaccess を使用して、次のようにディレクトリの参照を拒否していますOptions All -Indexes

それ以外は...どのような手順を踏むべきかわかりません。.htaccess を使用したユーザー名とパスワードの方法を提案する記事を見たことがありますが、その方法を使用して発生するパスワード プロンプトをバイパスする方法がわかりません。

ヘッダーと (または同様のもの) を使用してユーザー名とパスワードの組み合わせを送信できる方法があることを望んでいましたが、cUrlどこから始めればよいかわかりません。

どんな助けでも大歓迎です。前もって感謝します!

4

3 に答える 3

4

Web サーバーがどのような状況でもファイルを提供しないようにします。これを行う最善の方法は、それらを webroot の外のどこかに置くことです。すなわち:

/
  webroot/         <- root web directory, maybe named www or similar
    index.php      <- your app, served normally
    …other serve-able files…
  files/           <- not part of the serve-able webroot dir
    secret_file    <- web server has no access here

次に、それらにアクセスする唯一の方法がスクリプトを介する場合、スクリプトを作成するのと同じくらい安全です.

于 2010-04-04T03:58:51.380 に答える
1

だけDeny from Allにしないのはなぜ.htaccessですか?または webroot の上にファイルを配置しますか? それで十分でしょう。しかし、現在のセットアップはすでにかなり安全です。なぜ助けが必要だと思いますか。

于 2010-04-04T03:58:12.183 に答える
0

ローカルホストからのみダウンロードできるようにする場合、.htaccess は次のようになります。また、念のため、ファイルにアクセスしようとする可能性のあるハンドラーをいくつか削除します。そうすれば、あなただけがそれにアクセスできます。別のファイルの存在をチェックする index.php ファイルをそこに保存し、存在する場合はヘッダーを設定し、存在しない場合は終了することもお勧めします。

.htaccess ファイル:

<Files *>
    Order Deny,Allow
    Deny from all
    Allow from localhost
</Files>

RemoveHandler .php .php3 .phtml .cgi .fcgi .pl .fpl .shtml
于 2010-04-04T05:15:05.110 に答える