2017-12-19 7 views
1

私のウェブサイトはPHPで構築されており、私はストライプ支払いを統合しています。ストライプによるユーザー支払いが成功した場合、コードが実行されているサーバー上に というホストされているPDFファイルを開く必要があります。以下は制限付きユーザーのためのPDFファイルを表示

は、私はPDFファイルを開くために使用していたコードです:

$file = 'test.pdf'; 
$filename = 'test.pdf'; 
header('Content-type: application/pdf'); 
header('Content-Disposition: inline; filename="' . $filename . '"'); 
header('Content-Transfer-Encoding: binary'); 
header('Content-Length: ' . filesize($file)); 
header('Accept-Ranges: bytes'); 
@readfile($file); 

私はtest.pdfというファイルが直接アクセスできるようにする必要はありません。だからもし私が777にtest.pdfのパーミッションを変更すると、コードが実行されてPDFファイルが開きますが、誰でも直接リンクを介してファイルを開くことができます。このファイルへのアクセスがコードファイルに限定されるようにアクセス権を変更すると、pdfファイルが開かれません。ストライプ支払いが成功した後にPDFファイルを開くことができるようにするにはどうすればよいですか?直接URLではできません。

+0

サーバー側のアクセス許可はほとんど無関係です。ファイルをディレクトリそれはあなたのウェブサーバーから公開されており、あなたのスクリプトを通じてのみ利用可能です。あなたはむしろいくつかのパーミッションチェックをそこに置くべきです –

+0

私はpdfファイルを含むフォルダにどのパーミッションを置くべきですか? –

+0

あなたのスクリプトがそれらを読むことができる許可を選択してください。これは、Webサーバーがどのユーザーで実行されているか、どのユーザーがPDFファイルを書き込んでいるか、およびそのサーバー上で実行されている他のアプリケーションによって異なります。 –

答えて

1

「すべてから拒否する」を指定すると、.htaccess(またはvitualホスト構成)によるファイルの直接アクセスを防止できます。サーバーユーザー(例:www-data)がpdfの読み取り権限と実行権限を持っている場合は、 'readfile()'が動作します

関連する問題