[3] [DFN[[CODE(URI)[mhtml:]]]] は、 [[WinIE]]
で使用されている [[URI scheme]] です。 [[MHT]]
[[ファイル]]内の[[実体]]を示します。
* ! の後
[12] [CODE(MIME)@en[[[Content-Location:]]]] に相当するようです。
[13] [CODE(URI)@en[[[cid:]]]] [[URL]] により [CODE(MIME)@en[[[Content-ID:]]]]
を指定することもできるように見えますが、未検証です。 ([CODE(MIME)@en[[[Content-Location:]]]]
が [CODE(URI)@en[[[cid:]]]] [[URL]] の可能性も。
* 安全性
[4] [[WinIE]] の実装では [[MHT]] ファイルはそれ自体の場所に関わらず、
その中身の各[[実体]]の [CODE(MIME)[[[Content-Location]]]]
で安全性を判断しています。 [CODE(URI)[mhtml:]] [[URI scheme]]
自体の問題ではありませんが、 [CODE(URI)[mhtml:]] [[URI]]
が [[MHT]] の悪用に使われる可能性があります。
[5] 実際に [[WinIE]] の一部の版では [[MHT]]
で安全の制限が緩いことと [CODE(URI)[mhtml:]] [[URI]]
を組合せて安全でない動作をさせるための[Q[踏み台]]とできる脆弱性がありました。
[8] [CITE[Microsoft Internet Explorer での mhtml://mid URL によるバッファ オーバーフロー (IeMhtmlMidBo)]]
( ([TIME[2009-04-21 16:05:05 +09:00]] 版))
* 例
-[1] [CODE(URI)[mhtml:file://C:\Documents%20and%20Settings\user\Local%20Settings\Temp\test.mht]]
-- 普通に [[MHT]] ファイルを[[関連付け]]により開くと、
[[WinIE]] の[Q[アドレス]]にこう表示されます。
-- [CODE(URI)[[[file]]:]] URI や [CODE(URI)[[[http]]:]] URI
で [[MHT]] ファイルを指定すると、この URI に勝手に変わります。
-- この URI を [[WinIE]] に与えて開くこともできます。
-[2] [CODE(URI)[mhtml:file://C:\Documents%20and%20Settings\user\Local%20Settings\Temp\test.mht!http://www.example.com/test.xml]]
-- [[MHT]] ファイル内の [CODE(MIME)[[[Content-Location]]]]
[[URI]] を指定しています。
-- この URI を [[WinIE]] に与えて開くこともできます。
[9]
[PRE(URI example code)[
mhtml://mid:AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
]PRE]
;; >>8 の脆弱性を発生させる [[URL]] 例を一部省略したものです。
[10]
[PRE(URI example code)[
mhtml:mid://00000180/!cid:008401c4ff13$c1fbc260$a5891b45@mycomputer
]PRE]
;; [[Outlook Express]] での例、
[CITE@en[outlook url mhtml:mid ? - HTML Forums - Free Webmaster Forums and Help Forums]] ([TIME[2011-06-11 20:01:20 +09:00]] 版)
より
[11]
[PRE(CSS example code)[
background-image: url(mhtml:http://phpied.com/files/mhtml/mhtml-html.html!polloloco);
]PRE]
;; [CITE[Inline MHTML+Data URIs / Stoyan's phpied.com]] ([TIME[2011-06-11 20:03:14 +09:00]] 版)
* 関連
[6] 一つにまとめられたものの中の一部分を指定できるという意味では
[CODE(URI)@en[[[jar:]]]] や [CODE(URI)@en[[[res:]]]] と似ています。
[7] [[メール]]の[[メッセージ]]の一部分を指定できるという意味では
[CODE(URI)@en[[[cid:]]]] や [CODE(URI)@en[[[attachment:]]]] と似ています。