IIS6提供未注册的MIME类型

时间:2008-12-10 12:25:37

标签: security iis mime

我有一个IIS6 Web服务器(在Win2003上)有一个奇怪的行为,我猜是一些无证的“功能”......

它提供SVG文件(扩展名.svg),而不在IIS元数据库中注册。它也没有* mime类型。

对于此请求:

GET /basic/file1.svg HTTP/1.1

响应包含

HTTP/1.1 200 OK
Content-Length: 32817
Content-Type: image/svg+xml

那么...... IIS在哪里获得了这个image/svg+xml mime类型?

我发现它的唯一地方是注册表,HKEY_CLASSES_ROOT\MIME\Database。 但是根据我发现的所有MS信息,IIS允许mime类型的来源是它自己的元数据库。

有谁知道这种行为?这可能会导致IIS管理员产生错误的安全感......

最好的问候每个人!!

1 个答案:

答案 0 :(得分:1)

IIS合并来自Metabase和注册表(HKCR \< extension>)的MIME映射,以获取允许的Mime类型列表。

要列出配置数据库默认时间,您可以使用:

adsutil.vbs get /MimeMap/mimemap

不幸的是,很难打印出哑剧地图:

D:\Apps\Scripts>adsutil.vbs get /MimeMap/mimemap
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

MimeMap                         : (MimeMapList) ".asx,video/x-ms-asf" ".xml,text/xml" ".tsv,text/tab
-separated-values" ".ra,audio/x-pn-realaudio" ".sv4crc,application/x-sv4crc" ".spc,application/x-pkc
s7-certificates" ".pmc,application/x-perfmon" ".lit,application/x-ms-reader" ".crd,application/x-msc

在ADSUtil.VBS中更改一行可修复此问题(请注意“vbCRLF&”):

第1655行:

        MimeOutPutStr = MimeOutPutStr & """" & MimeEntry.Extension & "," & MimeEntry.MimeType & """ "

        MimeOutPutStr = MimeOutPutStr & vbCRLF & """" & MimeEntry.Extension & "," & MimeEntry.MimeType & """ "

生成如下输出:

D:\Apps\Scripts>adsutil.vbs enum  /MimeMap
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved.

KeyType                         : (STRING) "IIsMimeMap"
MimeMap                         : (MimeMapList)
".asx,video/x-ms-asf"
".xml,text/xml"
".tsv,text/tab-separated-values"
".ra,audio/x-pn-realaudio"
".sv4crc,application/x-sv4crc"
".spc,application/x-pkcs7-certificates"
".pmc,application/x-perfmon"
".lit,application/x-ms-reader"
".crd,application/x-mscardfile"
豫ICP备18024241号-1