私のウェブサイトギタープロファイルをアップロードできるようにしたい。どうやら、これらのMIMEタイプは特定されていません(私はテストして、アプリケーション/オクテットストリームを与えました)。ファイルがギタープロファイルであることを確認して100%確かめる方法はありますか? おかげギタープロファイルのMIMEタイプ?
0
A
答えて
1
は、アップロードされたファイルから最初のバイトを読みます。たとえば、これは、私が類似の機能を作成していたときにアップロードされたファイルをチェックするために使用した方法です。
$f = fopen($_FILES['tmp_name'], "rb");
fseek($f, 1);
$in = fgets($f, 19);
fclose($f);
if ($in == 'FICHIER GUITAR PRO') { ... }
したがって、1番目から19番目の文字を読み取ると、文字列 'FICHIER GUITAR PRO'が表示されます。このアプローチは、gp4ファイルのために私のために働いた。また、私はファイルの拡張子を確認するために使用されます。 しかし、この最初のバイトを偽装することはもちろん、拡張子もかなり簡単なので、悪質なアップロードをフィルタリングするために実行できる実際のチェックはありません。そのため、アップロードされたすべてのファイルを常に適時に管理する必要があります。
0
あなたはファイルを解析し、バージョン文字列が正しいかどうかを確認する必要があります
http://dguitar.sourceforge.net/GP4format.html
+0
ありがとう、私はPHPにはかなり新しいです。 ?これはgp4ファイル用のものですが、他のバージョンでも同じことがありますか? – romainberger
関連する問題
- 1. MIMEタイプのURN
- 2. ギタープロファイルを読む
- 3. MIMEタイプ:WP8 AET
- 4. MIMEタイプが
- 5. フォースMIMEタイプ
- 6. WPF&Mimeタイプ
- 7. woffフォントライブサーバーエラーのMIMEタイプ
- 8. MIMEタイプのリソースタイプ:ビデオ/ *
- 9. action_sendリンクのMIMEタイプ
- 10. MIMEタイプとACTION_SENDインテントチューザー
- 11. Doc、ppt、xls mimeタイプ
- 12. Adobe Air - Mimeタイプ
- 13. XpagesファイルアップロードコントロールとMIMEタイプ
- 14. mimeタイプのファイルをc#
- 15. PHPの不正なMIMEタイプ
- 16. MIMEタイプWavefrontのOBJとMTL
- 17. Ruby on RailsモバイルエラーのMIMEタイプ
- 18. CSVの必須Mimeタイプ
- 19. MSOFFICE MIMEタイプの検証
- 20. LaravelフォームMIMEタイプの検証
- 21. PHPファイルのカスタムMIMEタイプ
- 22. JavaのMIMEタイプ検出ライブラリ
- 23. Django開発サーバーとMIMEタイプ
- 24. GoogleストレージnodejsアップロードMIMEタイプ
- 25. Google ChromeのZipファイルのMimeタイプ
- 26. すべてのMIMEタイプの統合
- 27. LaravelでのMIMEタイプの検証方法
- 28. ベンダーのMIMEタイプ(APIのバージョン管理用)
- 29. docxのPHP MIMEタイプの検出
- 30. Google ChromeのMimeタイプのzipファイル
確かに確認できる各ファイルには特定のヘッダーがありますか?それらの2つをヘキサエディタでチェックしてください。 – jValdron
ヘッダー文字列を読み込み、一致するかどうかをテストします(ここでは正規表現が最適です)。合意したMIMEタイプがない場合は、それに対してテストすることはできません。 (アップロードには信頼できません)。便利なものでダウンロードを提供したい場合は、 'audio/x-guitar-pro'や何か、無駄な' application/* 'ではなく、タイプを設定してください。 – mario