2017-08-07 10 views
0

symfonyでファイル拡張子を検証する方法は既に実装されていますか?ファイルと画像のバリデータは、MIMEタイプのみを検証できます。それを行う方法はありますか?カスタムバリデーター/コールバックを使用する必要がありますか?symfony3のファイル拡張子の検証

+0

なぜそれを検証しますか?あなたはセキュリティについて不思議ですか? – Keloo

答えて

2

ファイル拡張子について検証する必要がある場合は、RegexValidatorを使用できます。ファイル拡張子がファイルの内容を保証するものではないことに注意してください。例えば、実行可能ファイルを.pngとしてアップロードすることができます。あなたはそれをより細かく制御したい場合

new RegexValidator('/(.+)(\.jpg|\.png|\.gif)$/') 

は、(例えば、許容される拡張子の配列を渡す)、.JPGで終わる任意のファイル名に一致する.pngのか

.GIFます私はCallbackValidatorを使用するか、自分で作ることをお勧めします。がんばろう!

+0

あなたはファイルの内容について正しいです。しかし、私がMIMEタイプだけを検証した場合、誰かが、例えばコメントにphpコードの有効なpngコンテンツを含む '.php'拡張子を持つ有効なphpファイルをアップロードすることができます。そのため、MIMEタイプとファイル拡張子の両方を検証する必要があります。 Sf開発者がこれを行うためのネイティブな方法を提供していないことは悲しいことです – user2394156

+0

非常に真ですが、いずれのメソッドもPHPコードで有効なPNGコンテンツを本当に保護していません。アップロードされたファイルをアップロードしていない最も簡単な方法は、アップロードしたファイルをPHPがアップロードしたファイルに触れさせるのではなく、私が想定しているウェブサーバから静的に提供することです。 –

関連する問題