ファイルへのアクセスをサーバーのみに許可する

ファイルへのアクセスをサーバーのみに許可する

私は、ある時点で PDF ファイルの表示を利用するシステムを構築しています。

これらのファイルは、システム外部から誰も閲覧できないようにロックする必要があります。つまり、ファイルに直接アクセスすることはできず、ユーザーに表示するためにサーバーからのみアクセスされます。

documents次のようなフォルダがあります:

.htaccess
test.pdf
test.txt

私の .htaccess には次の内容があります:

Order Allow,Deny
Deny from all

これにより、ファイルに直接アクセスすることができなくなります。example.com/documents/test.pdf

それでも、ファイルをシステム内で表示できるようにする必要がありますが、直接 URL で読み込むこともできません。そこで、フォルダーのすぐ外側に というファイルを作成しましたdocumentsload_pdf.phpこのファイルは次のようになります。

header("Content-Type: application/pdf");
$pdf = file_get_contents('documents/test.pdf');
echo $pdf;

そして、うまくいきました! 次のようにファイルを埋め込むことができます:

<embed src="/load_pdf.php"></embed>

しかし、問題があります。誰でもload_pdf.phpブラウザで直接読み込むことができ、アクセスできないはずの PDF ドキュメントが表示されてしまいます。

自分の要素load_pdf.php内のサーバーによってロードされていない限り、ロードされないようにブロックする方法はありますか?<embed>

答え1

ファイルにアクセスしたい IP アドレスを指定するか、ログインしている場合は特定の電子メール ID を使用して表示を許可することができます。

これらはすべてload_pdf.phpの先頭で指定できます。

答え2

いいえ。

https://stackoverflow.com/questions/4930914/prevent-pdf-file-from-downloading-and-printing

最終的には次のことが必要になります。

  • 各ページの画像を作成する

  • 独自のインターフェース(HTML、Flashなど)を介してWeb上でユーザーに提示します。

答え3

これは次のようにして実行できます:-

<Files *test.pdf>
    Order allow,deny
    Deny from all
</Files>

<Files *test.txt>
    Order allow,deny
    Deny from all
</Files>

関連情報