2016-12-09 8 views
-2

認証/承認が必要なCakePHP3アプリケーションでは、画像がアップロードされる可能性があります。
今、私はユーザーが他のユーザーの画像を見ることができないようにしたいと思います。イメージ名などを推測する。
また、エンティティのIDをファイル名として使用して、推測が容易になるようにしたいと考えています。
したがって、アセットの承認をどのように実装しますか?私たちは全くと気にはならないのでcakephp - アセットを承認する方法は?

答えて

1

私はFacebookのように、新しいファイル名として文字のランダムな十分な長推測できない文字列を生成することにより、ファイル名の「推測」を防止するであろうがアップロードする写真はありませんファイルの元の名前、ユーザーがアップロードするファイルの名前を変更することができます。たとえば、ユーザー24976はtomato12.pngと呼ばれるファイルをアップロードします。

1481540475_24976_iDewM51NYrBYgnIh.png

それは四つの部分のうち、構成されています:その後、

[timestamp]_[userId]_[randomString].[suffix]

そして、にファイル名を保存、アップロードスクリプトは、次の名前(たとえば)にファイル名を変更しますデータベース。 uploadsディレクトリを調べると、どのユーザーがどのファイルをアップロードしたのかを知ることができますが、ディレクトリインデックスを参照する権限を持たない外部者は決してファイルの名前を推測できません。認証は必要ありません。

関連する問題