私は自分のファイルや画像をアップロードできるWebアプリケーションをPHPで作成していますが、所有者以外の人がこれらのファイルにアクセスすることを防ぐにはどうすればいいですか? dropboxについて考えてみましょう。これらのファイルを保護する仕組みは何ですか、私は検索しようとしましたが、これについては何も得ていません。任意のポインタやチュートリアルへのリンクは非常に便利です。前もって感謝します。ユーザーのみがアクセスできるようにユーザーのファイルを保護しますか?
答えて
イメージとファイルをバイナリBLOBとしてデータベースに格納する場合は、ログインしたユーザーに対するアクセス許可をデータベースから取得して表示するだけです。
通常のファイルとして保存する場合は、Web上で公開されていないWebサイトのドキュメントルートの上に保存する必要があります。次に、データベースから正しい所有権をチェックした後(イメージの構造を知らないので、あなたが誰に所属しているかを入れ替えたものに置き換えます)、PHPはファイルを取得して、正しいヘッダでブラウザに送ります。例えば
、画像を表示する:
// Check permissions...
// If permissions OK:
$img = file_get_contents("/path/to/image.jpg");
// Send jpeg headers
header("Content-type: image/jpeg");
// Dump out the image data.
echo $img;
exit();
あなたは、例えば、何の所有者を追跡するためのユーザーIDと一致するファイル名のデータベーステーブルを維持することができます。
非常に徹底した説明です。ありがとう、1 upvote – bingjie2680
これを行うための一般的な方法でファイルを
- ものだファイルはないアクセスID
- インターネットからであるディレクトリに移動し、ファイルに対して生成され、データベースに格納されます。
次に、ユーザーはIDを使用してサーバーからファイルを要求します。
この目的のために、IDに基づいてファイルをデータベースに照会し、ユーザーがそのIDにアクセスできるかどうかを確認するスクリプトを作成します。ユーザーがアクセス権を持っている場合は、ファイルを読み取り、ユーザーのブラウザーに出力します。例えば
、PHPでJPEG画像を読み込む:
<?php
header('Content-type: image/jpg');
readfile('/path/to/image.jpg');
あなたの答え、1 upvoteに感謝しますが、マイケルの答えはより完全です。私は彼を受け入れます。 – bingjie2680
ユニークで特別なファイル名を使用し、唯一のdisiredユーザーにそれらを提示。 あなたはまた、PHPでセッションを設定し、ファイルが含まれるようにセッションが正しいかどうかを調べることができます。 PHPにhttacces tioリダイレクトを使用します。
<?
sessuion_start();
file_exists($_SESSION['specialkey']_$_GET['realfilename']){
include(/* include the file */); // or readfile
//or header location, but then the rteal URL will become visible
}else{
die('acces denied');
}
特殊ページは、表示ページを作るPHPページで設定され、eveyファイルで一意であり、DBから取得されます。 これは私が上手くやれる方法です。あなたがPHP
編集 からのみaccesableあるディレクトリ内のファイルを保存する代わりに、あなたはDropboxのファイルではヤニ・ハーティカイナン方法
イメージで 'include'を使うと、それらは表示されません。私は投票しませんが、それは良い答えではありません。 –
- 1. 特定のユーザーのみがアクセスできるようにする
- 2. ユーザーがスタイルをアップロードできるようにするウェブサイトを保護するサンドボックス
- 3. htaccessパスワードが異なるユーザーでファイルを保護する
- 4. ユーザーがURLのphpファイルにアクセスしないようにする
- 5. フロントエンドユーザーが保護されたファイルにアクセスできるようにする
- 6. ユーザーのサブセットのみがGoogle Appsプロジェクトにアクセスできるようにする
- 7. ユーザーのアップロードファイルの保護django
- 8. ユーザーからPHPファイルマネージャを保護する
- 9. ユーザーによる画像アクセスを効率的に保護する方法
- 10. rails deviseは、既存のユーザーのみが新しいユーザーを登録できるようにしますか?
- 11. 別のユーザーが自分のOracleテーブルにアクセスできるようにします
- 12. このユーザーが作成したオブジェクトのみをユーザーが変更できるようにします
- 13. ユーザーがログインした後、どのように保護されたページにリダイレクトするのですか?
- 14. Firebase:ユーザーが他のユーザーのアカウントを作成できるようにします。
- 15. ブラウザはユーザーのIPアドレスを保護しますか?
- 16. どのようにしてCookieを保護できますか?
- 17. ユーザーがパスワードを入力してExcelで行を保護する
- 18. passportjs認証ユーザーのみが保護されたページにアクセスすることを許可する
- 19. SonarQube - SSOは、特定のユーザーのみがセキュリティグループ経由でSonarQubeにアクセスできるようにします。
- 20. "親"保護されたメンバーにはどのようにアクセスできますか?
- 21. ユーザーがプロファイルを保存できるようにするimg。しかし、私は 'ユーザーを呼び出すことができない取得し続けている?'引数なし。ユーザーがストレージにプロフィールIMGを保存できるようにしようと
- 22. ログインしているJoomlaのユーザーのみがアクセスできるPDFファイル
- 23. どのようにユーザーがPythonで選択したファイルを開きますか
- 24. PHP SMB共有にアクセスするためのフォルダ(ユーザー/パスワードで保護された)
- 25. Googleスプレッドシート - ユーザーが保護された範囲でスクリプトを実行できるようにする
- 26. ユーザー名、パスワード、ユーザー数を保護する方法
- 27. ユーザーのIPアドレスにアクセスしないでHTTPSインターネットポータルを保護していますか?
- 28. Java Webサービス - ユーザーによるWebメソッドの保護
- 29. ユーザーはどのようにして別のユーザーに報告できますか?
- 30. ネットワーク内の他のコンピュータに保存されているファイルにアクセスする方法ですが、複数のユーザーのみがアクセスできます
を使用することができます含めるオスロかもしれません
だけではなく、管理者がアクセスすることができますファイルの所有者によって。 – CodesInChaos