5

C# MVC Web サイトへのファイルのアップロードを許可しています。現時点では拡張子に基づいてこれらのタイプを制限していますが、名前が変更されただけではないことを確認するためにサーバー側のチェックが必要だと感じています。

必要なすべての型をチェックするために使用できる手法や、ここで役立つライブラリを使用できますか?

ファイルの最初の数バイトをチェックしている人を見たことがありますが、何かを見逃してしまうのではないかと心配しています。

ご協力いただきありがとうございます。

編集:

ここにはたくさんの提案があります。解決策としてこれらのいくつかを調査します。

4

5 に答える 5

2

If you are reading the file as an HttpPostedFile you can get the content type which is equal to the mime type.

So then you can do the following:

if (myFile.ContentType == "video/mpeg")
{
   // Do your thing
}
else{
   // error
}
于 2012-09-02T10:31:44.480 に答える
0

この解決策を試してください: .NET を使用して、拡張子ではなくファイル署名に基づいてファイルの MIME タイプを見つける方法

ファイルコンテンツのスニッフィングを行います。

于 2012-09-02T10:39:30.663 に答える
0

私は HttpFileBase を使用しておらず、ファイルストリームしか持っていないため、ストリームの最初の数バイトを読み取って MIME タイプを特定する必要があったため、ここからいくつかのソリューションを混合することになりました。

注: サーバーに何がインストールされ、何がインストールされないかわからないため、レジストリ手法は使用しません。

于 2012-09-02T23:10:27.447 に答える