タグ

ブックマーク / colo-ri.jp (2)

  • Office2007ファイル(docx,xlsx,pptx)のMIME-Typeを正しく判定する方法 | colori

    アップローダーなどを設置してOffice2007系のWord(.docx) やExcel(xlsx), PowerPoint(pptx)かどうかを判断するのは以外と大変です。 理由:全て「zipファイル」と判断されるから Office2007以降からファイルのフォーマットがOffice Open XML(OOXML) に変更されたのですが、これは実際はZIPファイルになっていて、PHPのFileInfoモジュールや mime_content_type() 関数(公式には非推奨)などを利用しても、「application/zip」や「application/x-zip」と判断されてしまいます。 正しく判定するには、ZIP展開して[Content_Types].xml を見る 正しく判定するにはどうするかというと「File Signatures」にはこう書いてあります。 ~Office2003

  • PHPでMIME-Typeを判定する方法 | colori

    サイト作成時にユーザーからファイルをアップロードしてもらう場合に気をつけることとして「それが正しいフォーマットかどうか」という点があります。 つまり偽装ファイルでないかどうかということですね。 これを判定するにはMIME-Typeを調べるのが良いとされています。 Webブラウザーからの情報は信用しない=基 正しいファイルフォーマットを知るためには、ファイルのMIME-Type情報を取得して判断するのですが、ブラウザーがサーバーに伝えるMIME-Typeはウソの情報を与えることもできます。 Webブラウザは拡張子を変えるだけで騙される!? 突然ですが、適当なテキストファイルを作成して拡張子を「.gif」に変えてみてください。 Windowsだと警告がでますが、無視してOKするとテキストファイルが画像アイコンに変わります。 これだけでWebブラウザーは「画像だ」と認識してしまいます。 MIM

  • 1