zipファイル内で送信される拡張機能のないファイルのmimetypeを見つけるにはどうすればよいですか?

StackOverflow https://stackoverflow.com/questions/4874333

  •  28-10-2019
  •  | 
  •  

質問

私には簡単な問題があります。私が開発しているシステムでは、ユーザーがzipfilesを送信でき、そのコンテンツをフィルタリングする必要があります。 (アプリケーションと悪意のあるスクリプトをブロック)

内側のファイルを拡張してブロックすることは簡単ですが、拡張機能のないファイルは非常に一般的であり、拡張機能はファイルのコンテンツに関する最も信頼できるソースではありません。

私はすでにPython Magicを使用しようとしましたが、サーバーがサポートしていないパッケージが必要であり、サーバーは私を助けません。おー!システムを別のサーバーに変更するオプションはありません。したがって、この場合、私にはPython Magicはありません。

ヘッダーでファイルタイプを確認する方法について誰かがアイデアを持っていますか?

役に立ちましたか?

解決

直接的な答えではありませんが、 /etc /Magicの形式はそれほど複雑ではないので、検出する必要があるいくつかのフィルタイプだけが、おそらく独自の検出ルーチンを書くのが最も簡単です。

# Java

0       beshort         0xcafe
>2      beshort         0xbabe          application/x-java-applet

我々が得る:

data = open(path).read()
if data[0:4] == '\xca\xfe\xba\xbe':
    minetype = 'application/x-java-applet'
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top