こんにちはゲストさん。会員登録(無料)して質問・回答してみよう!

解決済みの質問

【php】画像アップローダのセキュリティ

マイページのプロフィール画像等、
画像をアップロードできる機能があるサイトを作成した場合
とあるディレクトリに、そのすべてのデータが入っていくとします。
image_22_00001.jpg
image_02_00002.jpg
image_45_00005.jpg
というような感じで、あるルールにそってファイル名がついていくとして
削除ボタンのようなフォームで削除する場合、
「IDが02の 00002番目の画像をを削除しろ」
 ↓
image_02_00002.jpg 削除
というプログラムを書くとします。
しかし、もし、POSTやGETでIDや番号を送ってしまうと、
POSTやGET値を改ざんするだけで
ディレクトリに入ってる他の人がアップロードした画像データ等
どんな画像データでも消せてしまうことになります。

データベースに
image_02_00002_XXXXXX(ハッシュ値)
で登録するにしても、

データベースを呼び出すとき、どのレコードに入ってるデータを削除するか
という指定をする時にデータベースのクエリで使うID等を改ざんすることで
好きなレコードの画像を削除することができます。

このようにPOST、GETの改ざんをされても
本人がアップしたもののみしか削除できないような
ロジックはどのようにして組み立てたらよいものなのでしょうか?

投稿日時 - 2012-09-15 14:01:49

QNo.7698828

困ってます

質問者が選んだベストアンサー

掲示板の記事編集・削除でも「最初に(その投稿に)設定したパスワード」を必須にしていることが多いですよね。

普通は「画像データ」とは別にテキストファイルやデータベースに「アップロードしたユーザ、パスワード、元ファイル名、保存したファイル名」などを記録しておくと思います。

投稿日時 - 2012-09-15 14:07:21

お礼

回答有難うごいます。
なるほど、アップした本人しか知り得ない情報も
一緒に画像データの情報の入ったテーブルに保存しておくのですね。

投稿日時 - 2012-09-16 00:02:42

ANo.1

このQ&Aは役に立ちましたか?

0人が「このQ&Aが役に立った」と投票しています

回答(1)

あなたにオススメの質問