2017-09-18 7 views
0

stackoverflowで、フォルダへのすべてのアクセスを拒否して、フォルダとそのコンテンツに直接アクセスできないという回答が見つかりました。しかし、彼らはまた、PHPが.HTACCESSファイルによって禁止されているファイルにアクセスするのに問題がないことを示唆しました。.HTACCESSファイルで禁止されたファイルを含めることは可能ですか?そうであれば、どうすればいいですか?

今のところある意味では、これは私が働くのに時間がかかっているにもかかわらず、まだまだです。

<?php 

/* 
* the folder channel is in html folder# 
* the folder channel has its own .htaccess file with code like 
* deny from all 
*/ 

include("channel/150508084959b5b611e1dcf.mp4"); 
?> 

今ここで私はPHPはファイル が含まれているため、それが動作するように期待して禁断のフォルダからビデオを再生しようが、私はちょうどコンソール でサーバーエラーを取得し、apache.logファイルに私はPHPを取得します解析エラー:構文エラー、予期しない「\ XDF」(T_STRING)

<video src="channel/150508084959b5b611e1dcf.mp4" controls autoplay></video> 

は、それは私が与えられた解答やapache.logファイルを誤解のいずれかが、私は本当に助けを必要としていることかもしれません。 事前に感謝し、どんな助力も本当に感謝しています。

+1

'include'ではなく' readfile'を試してください。正しいhttpヘッダーを設定する必要があるかもしれません。そしてビデオ 'src' shouleはあなたのPHPファイルにURLになります。 – brevis

答えて

1

.htaccessの制限を使用して、人々がウェブリクエストを通じて直接コンテンツにアクセスできないように思えます。これらのリクエストは、Apacheがあなたの.htaccessファイルを読み込み、その中のルールを適用します。 PHPは異なるプロセスとして動作し、Apacheを経由しないため、これらのルールを回避することができます。

<video src="video.php?id=150508084959b5b611e1dcf" controls autoplay></video>

そしてあなたvideo.phpファイルがid値をとり、readfilehttp://php.net/readfile)またはstream_get_contentshttp://php.net/stream_get_contents)または単純なファイルの読み取りを使用して提供します。あなたは、その後のような何かを行うことができますPHPを使用することにより

コンテンツ。

あなたがこのコンテンツを直接アクセスしないようにしようとしている場合、これは実際に問題を解決するものではありません。人々はvideo.phpファイルに実際のコンテンツを入手するようリクエストすることができます。あるメソッドを別のメソッドに置き換えるだけです。あなたが本当に人々を止めたいのであれば、それは猫とマウスのゲームになるので非常に複雑になることがあります。

あなたがホットリンクを防ぐために、簡単な実装(https://simple.wikipedia.org/wiki/Hotlinking)を試すことができ、あなたが心配していることは、人々が自分のコンテンツにリンクされている場合: https://mediatemple.net/community/products/dv/204644230/prevent-hotlinking-with-a-htaccess-file

これは本当にあなたのコンテンツを得ることに投資している人々を停止することはありませんが、それはいくつかのHTMLにリンクを張るだけでは挑戦的になります。

関連する問題