0

CodeIgniter フレームワークを使用して開発しています。

パーミッションが 755 に設定されている画像アップロード フォルダーがあります。私のホストは suPHP を使用しているため、サイト ユーザーはそこにアップロードできます。

ユーザーが画像をアップロードすると、IMAGE ファイルのパーミッションが 666 になっていることに気付きました。

ユーザー名を使用して画像に名前を付けているので、ユーザー名が「hello」の誰かがそのディレクトリに「hello.jpg」または「hello.png」という名前の画像を保存していると簡単に推測できます。</p>

これは危険ですか?悪意のある訪問者は、その画像アップロード ディレクトリからメンバーの画像を削除または置換するなどのことを行うことができますか?

イメージにランダムな名前を付けて、そのランダムなイメージ名をそのユーザーの db テーブル行に保存して、どのイメージ名がどのユーザーに一致するかを知る必要がありますか?

4

1 に答える 1

0

もちろん、常にユーザー入力を検証する必要がありますが、この場合、現在のユーザーのユーザー名がファイル名として使用されている名前と一致することを確認するだけで済みます (アップロードを許可する前にユーザーを認証すると仮定します)。入力したものを介してファイル名を指定することを意味します。

つまり、既知のユーザー情報、サーバー側のデータのみを使用してファイルを認証し、名前を付けます。

于 2012-11-06T11:36:47.380 に答える