私のGnu / Linuxホストのアップロードフォルダに画像をアップロードするフォームがあります。
ユーザーが参加すると、アップロードするフォルダが作成され、そのフォルダに画像が保存されます。
インデックスを無効にしてその場所を難読化しましたが、現在はwebsite.com/uploads/user3/photo.png
ファイルパスを知っていればアクセスできます。垣間見ないようにするには、ユーザーフォルダとそのコンテンツにどのような権限を設定する必要がありますか?アップロード機能がグローバルに機能するには読み書きが必要です(これは面倒です)。
私が見ると、人々がこれらの画像のファイル名を見つけるのは難しいでしょう(インデックスなしなど)。それにもかかわらず、そうすればその画像を表示またはダウンロードできます。
他のヒントをいただきありがとうございます。
ところで、何らかの理由で私のホストはsetfaclを許可しないようです。前の質問でこれを答えとして提案しました。
答え1
ファイルシステム権限に関して何も必要としない単純な解決策があります。アップロードパスをドキュメントルート以外の場所に変更するだけです。認証されたユーザーがWeb経由でそれを確認する必要がある場合は、認証が確認されたらサーバー側のWebコードにそれを含めます。
答え2
これはファイル権限で解決できる問題ではないようです。 Webアプリケーションでこの問題を解決する必要があります。 Webアプリケーションにアクセスが必要な場合は、アクセスが必要です。 Webアプリケーションは、どのユーザーがWebアプリケーションにログインしているかを知ることができます(これはUnixユーザーとは異なります。WebアプリケーションはUnixユーザーとして実行されます)。
テクニック1:ハッシュまたは大きな乱数をファイル名として使用します。推測することはできませんが、名前を知っている人はアクセスできます。
技術2:セキュリティライブラリ/フレームワークを使用して管理します。
の場合、setfacl
ファイルシステムにインストールされていないか、有効になっていないか、カーネルで有効になっていません。