0

ファイル共有 Web サイトを構築していますが、セキュリティについて質問したいです。私のシステムは、次の Web サイトのように動作します: FileFlyerShareFlare、およびLetItBit

ユーザーがファイルをダウンロードしたい場合、キーを購入する必要があります。その後、ファイルを「ロック解除」してダウンロードできます。

問題: 1 人のユーザーがキーを購入してファイルのロックを解除すると、そのユーザーはダウンロード リンクを全員と共有できます。

私の解決策:ユーザーがファイルのロックを解除すると、ユーザーの IP、ファイル ID、および生成されたランダム ID を SQL テーブルに挿入します。ダウンロード リンクは、GET パラメータとしてダウンロード ID を持つ PHP ファイルになります。ダウンロード リンクで、ユーザーの IP が一致するかどうかを確認します。もしそうなら、私はreadfile関数を入れて、ダウンロードを開始します。

私の質問:これでセキュリティは十分ですか? そうでない場合 - なぜですか?もう1つ-ファイルパスへのアクセスを拒否するにはどうすればよいですか? たとえば、ファイル パスが の場合、www.SITE.com/files/file.rarそこからファイルにアクセスできるようにしたくありません。

4

2 に答える 2

0

ファイルをドキュメント ルートの外に移動し、ユーザーがファイルをダウンロードしたい場合は、ファイル読み取り関数を使用して PHP 経由でストリーミングできます。それは合理的に聞こえますか?

このようなもの:

<?php
// Remember to have path outside document root:
$filename = "/path/to/file";
header("Content-Disposition: atachment; filename=".$filename);
header("Content-Type: application/octet-stream");
header("Content-Length: ".filesize($filename)); 
header("Pragma: no-cache");
header("Expires: 0");
$fp=fopen($filename,"r");
print fread($fp,filesize($filename));
fclose($fp);
exit();
于 2013-07-26T08:10:57.750 に答える
0

コメントに基づいて、直接ファイルパスアクセスを回避するhttpd.conf経由のディレクトリアクセスを許可しない場合、問題は解決します。つまり、最初の人が静的URLをダウンロードしてコピーし、再度ダウンロードしようとした後、ディレクトリアクセスが拒否されたため、問題は発生しません

于 2013-07-25T13:10:35.907 に答える