zipファイル内で送信される拡張機能のないファイルのmimetypeを見つけるにはどうすればよいですか?
-
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'
所属していません StackOverflow