1


0

Webアプリケーションからのみブラウザ経由でファイルシステムのダウンロードを制限する方法

私のWebアプリケーションではないときにdocファイルへのアクセスを防ぐための最良の方法が必要です。たとえば、一部のファイルを検索エンジンまたはパブリックユーザーから隠し、プライベートユーザーのみがそれらにアクセスしてダウンロードする必要があります。

DBの使用量を増加させないために、DBではなくファイルシステムにファイルを保存したいと思います。

3 Answer


3


ファイルをファイルシステムのURLからアクセスできないディレクトリ(ルートWebディレクトリの兄弟など)に保存できます。 これにより、直接アクセスが防止されます。

次に、PHPスクリプトを作成します。このスクリプトは、指定されたファイルを照会すると、ユーザーがそのファイルにアクセスできるかどうかを確認し、「readfile」で(コンテンツタイプとコンテンツ処理の「header」とともに)送信します。


2


「プライベートユーザー」と言うとき、これらのユーザーが何らかの方法で認証されることを意味していると思います。 これらのファイルをWebディレクトリの外部に保存し、PHP / Perl / Your_Favorite_Programming_language経由で提供することができます。

リンクは、そのユーザーが認証されているかどうかを確認するスクリプトにつながる可能性があり、そうであれば、スクリプトを介してファイルを提供します。

phpでは、ユーザーを認証した後、次を使用できます。

header('Content-disposition: attachment; filename=movie.mpg');
header('Content-type: video/mpeg');
readfile('/full/path/to/your/files/movie.mpg');

そのディレクトリをWebルートの外部に作成し、スクリプトを実行するのと同じユーザー(通常はapacheの下)にアクセス許可を設定することを忘れないでください。


0


Robots.txtは、特定のHTTPユーザーエージェントをブロック/許可する方法です。 しかし、これは最も安全な方法ではありません。 基本認証を使用して、Webアプリにログインさせることができます。