4

ファイルのダウンロード URL がダウンローダーに見られないように保護する方法が必要です。

ユーザーは支払い後にダウンロード リンクを受け取りますが、支払いをしていない友人に URL を広めないようにするという考え方です。

これに対するいくつかの一般的な解決策は何ですか? おそらくファイル名を変更しますか?

(私はPHPを行うことができます.mySqlこの投稿は実際にはメソッド用です)

4

4 に答える 4

4

ユーザーがあなたのサイトにアカウントを持っている場合、彼らがダウンロードにお金を払った場合は、あなたの DB に保管してください。次に、支払ったかどうかを確認する download.php などのリンクを提供し、支払った場合はファイルの場所を指定します。.pdf の例:

if($userpaid === true) {
  $filename = 'congrat-you-paid-it.pdf'; //Name to display
  $file = './download/pdf/secretlink.pdf';      
  header('Content-type: application/pdf');
  header('Content-Disposition: inline; filename="'.$filename.'"');
  header('Content-Length: ' . filesize($file));
  @readfile($file);
  exit;
}
于 2013-08-21T11:29:11.540 に答える
3

解決策の 1 つは、SESSIONまたは同様の一時ストレージを使用して、実行時にダウンロード URL を生成することです。そのため、URL を再度クリックしても機能しない場合があります。

また、ファイルへの直接アクセスは許可しないでください。

于 2013-08-21T11:23:02.333 に答える
1

トークンを作成します。最後に保存し、ファイルの URL も送信します。ユーザーがトークンと一致する URL をクリックすると、ダウンロードが許可され、ストレージからトークンが削除されます。ただし、登録ユーザーがダウンロードするたびに新しいトークンを生成する必要があります。

于 2013-08-21T14:22:24.913 に答える
0

セッションの使用は迅速かつ簡単です。セキュリティを向上させるために、次のことができます。

  • 実際のファイルを別のフォルダーに入れ、その中に .htaccess を入れて、スクリプトがそのファイルにのみアクセスできるようにします。

  • 次に、ランダムな一意の変数を生成します

  • 次に、その名前で一時ファイルを作成し、それへのリンクをクライアントに提供します

  • 最後に cron ジョブを実行して、作成された不要なファイルを削除します。

于 2013-08-21T11:33:40.267 に答える