- ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:画像アップロードのファイル名はハッシュ以外でも可?)
画像アップロードのファイル名はハッシュ以外でも可?
このQ&Aのポイント
- 画像アップロード時のファイル名を、ハッシュ値に書きかえている実装をよく見るのですが、あれって別にハッシュじゃなくても良いのでしょうか?
- ブラウザから渡されたファイル名をそのまま使用すると、セキュリティリスクがあるため、通常はハッシュ値に書き換えます。しかし、ハッシュ以外の別のファイル名でも問題ありません。
- 推測されやすいファイル名を使用すると、セキュリティ的なリスクが高まるため、推測されにくいファイル名を使用することが一般的です。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
>「ブラウザから渡されたファイル名は汚染リスクがある」と書いてあったのですが、 >この意味は、「ブラウザから渡されたファイル名をそのまま使用してはいけない」 >ということだけでしょうか? はい。 >書きかえるファイル名は何でも良い? はい。重複さえしなければいいです。データの(バイナリの)ハッシュ値を使えば「中身が同じ画像なら同じファイル名」になるので無駄がなくなる(ことが期待できる)というのはありますが、二次的な話です。バイナリでなくmicrotime()やアップロードユーザ名+追番などのハッシュ値を使うこともありますしね。 >上記のように、推測されやすいファイル名でも問題ない? 問題ないです。隠すことが主目的ではありませんので。 本当に隠蔽したいなら、httpでアクセスできない場所(DocumentRootより上の階層とか、.htaccessでアクセス不能にしたディレクトリ)に置いて、phpスクリプト経由でしかアクセスできなくします。httpでアクセス可能な場所に置くのであれば、アクセスされることは想定すべきです。
お礼
回答ありがとうございました。 >データの(バイナリの)ハッシュ値を使えば「中身が同じ画像なら同じファイル名」になるので無駄がなくなる(ことが期待できる)というのはありますが、二次的な話 ・なるほど、そういう意味なんですね ・説明、大変分かりやすかったですー