3
libmagic / fileに.docxファイルを検出させる
他の場所で見られるように、docx、xlsx、およびpttxはZIPです。Webアプリケーションにそれらをアップロードするとき、file(libmagicおよびを介してpython-magic)ZIPとして検出します。 ファイルの内容をデータベースにblobとして保存しますが、当然、どのような種類のファイルであるかをユーザーに信頼したくありません。したがってfile、ダウンロード中にファイル名を信頼し、自動的に生成したいと思います。 修正できることは知っ/etc/magicていますが、フォーマット(magic(5))は私には複雑すぎます。Debianのバグでこの問題に関するバグレポートを見つけましたが、2008年以降のものであるため、すぐには修正されないようです。 私の他の唯一の選択肢は、ユーザーを実際に信頼することですが(ただし、コンテンツをblobとして保存する)、ファイル名に基づいてファイル拡張子のみをチェックすることです。このようにして、一部の拡張機能を禁止し、他の拡張機能を許可できます。また、ユーザーがファイルを再ダウンロードするときに、アップロードした方法に関係なく使用できます。ただし、ファイルを他のユーザーと共有する場合、このソリューションは安全ではありません。ファイルの名前を変更してアップロードできるようにするだけです。 何か案は? 最後に、docxなどのマジックナンバーのリストを見つけましたが、これらをmagic(5)フォーマットに変換することはできません。