4

私は自分のコードにこれを持っています:

<a href = "res/pdf/sample.pdf">Sample PDF</a>

つまり、基本的には「sample.pdf」というファイルへのダウンロード リンクのように見えますが、問題は、このファイルのダウンロードに制限があることです。そのため、機密レポートがアップロードされている場合、悪意のあるユーザーがブラウザーの履歴にダウンロード リンクの URL を誤って記憶または表示した場合、直接リンクであるため、Web サイトにアクセスしなくても簡単にダウンロードできます。このリンクを保護するにはどうすればよいですか? または、割り当てられたユーザーに対してのみダウンロードされますか?

4

2 に答える 2

6

直接 URL でファイルを提供しないでください。PHP スクリプトに必要なファイルのファイル名を受け取ってもらい、それを提供します。

したがって、誰かが上記のファイルをダウンロードしたい場合は、

example.com/getfile?file=sample.pdf

PHP スクリプトは、現在のユーザーがファイルを表示する権限を持っているかどうかを確認し、それを提供します。

次のようにリンクを作成します。

<a href = "http://example.com/getfile?file=sample.pdf">Sample PDF</a>

現在の方法は、機密ファイルに対して非常に安全ではありません。悪意のあるユーザーは、すべてのファイルをダウンロードするスクリプトを簡単に作成できますres/pdf。彼がする必要があるのは、ディレクトリ内の文字のすべての順列をチェックし、すべての 404 エラーを破棄することだけです。

目的に反するため、ユーザーをリダイレクトしません。Content-disposition適切なヘッダーを使用して、ファイルをダウンロードとして提供します。

以下に例を示します: PHP を使用してファイルを提供する最速の方法

グーグルでもっと多くの例を得ることができます。

PDF ファイルを提供する方法を示す素晴らしい例を次に示します

于 2012-06-01T06:05:39.553 に答える
0

htaccessで制限できる

于 2012-06-01T06:05:10.803 に答える