扩展名.htm .html .mht是一回事吗?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了扩展名.htm .html .mht是一回事吗?相关的知识,希望对你有一定的参考价值。

一、.htm与.html的区别
.htm 格式是超文本标记Hypertext Markup
.html后者是超文本标记语言Hypertext Markup Language
这两种都是静态网页文件的扩展名,扩展名可以互相更换而不会引起错误(如将test.htm的文件名重名为test.html,也可以打开;反之同理)。
但是对于一个链接来说,如果它指向的是一个test.htm文件,而实际存在的是test.html文件,则超级连接是无法打开的。

二、.mht
MHT是MIME HTML的缩写,是一种用来保存HTML文件的格式,与HTML不同,它可以将HTML页面以及页面中连接的图片文件保存到一个单一的文件中,非常便于使用和保存。MHT默认使用IE浏览器打开,你家的电脑无法打开这个扩展名的文件,是由于相应的关联出现了问题。请在要打开的文件上单击右键,选择打开方式,从中选择Ineternet Explorer浏览器;或者先打开IE浏览器,然后从菜单“文件”-“打开”中找到你的MHT文件,将其载入。另外,在资源管理器中点击菜单“工具”-“文件夹选项”,于弹出窗口的“文件类型”选项卡下找到扩展名为MHT的文件类型,确认其打开方式跟它下面的MHTML相同,都是“Internet Explorer”,这种方法可以一次性的更改MHT的关联。

说得通俗点,.htm与.html其文件中只有HTML语句,不包含所引用的对象,如图片等。而.mht则包括代码及图片等对象。
参考技术A ★Bloodhound.Exploit.6病毒专题★
一、安全公告编号
US-CERT:TA04-099A
二、影响范围
运行Internet Explorer的 Microsoft Windows 系统
三、漏洞描述
ITS 协议处理机制中存在一个交叉域脚本漏洞,ITS协议处理机制决定了存储在一个已编译HTML帮助 (CHM)文件中HTML组件的安全域。HTML帮助系统"……运用Microsoft Internet Explorer下列组件显示帮助内容。他支持HTML, ActiveX, Java,和脚本语言(JScript, 和Microsoft Visual Basic Scripting Edition)。"CHM文件运用InfoTech Storage (ITS)格式存储HTML 文件, graphic 文件, 和ActiveX 对象这一类的组件。IE提供多种协议处理程序,能够访问ITS文件和单独的CHM组件:its:, ms-its:, ms-itss:,以及mk:@MSITStore:。IE也有访问部分运用mhtml:协议处理机制的MIME封装的HTML集合文件包(MHTML)的能力。
当IE引用一个使用ITS和mhtml:协议的不可访问或是不存在的MHTML文件时,ITS协议处理机制能够通过一个替代资源访问到CHM文件。IE错误地将CHM文件看作和不可使用的MHTML文件在同一个域中。运用特殊处理的URL,攻击者能够导致CHM文件中的任意脚本在不同域中执行,这与交叉域的安全模式相违背。
任何使用WebBrowser ActiveX 控件或是IE HTML 翻译机制 (MSHTML)的程序会受到此漏洞影响。例如Internet Explorer, Outlook, 和 Outlook Express 都是此类程序。任何程序,包括其他网络浏览器,使用这个IE协议处理机制(URL名字)的都可以被攻击。同样,由于IE决定MIME类型,HTML和CHM文件不会有预期的文件扩展名(.htm/.html/.chm )。
注意:
使用替代的网络浏览器不会减轻此漏洞的危害。使用与Windows 系统中调用IE来处理ITS协议URLs机制不同的其他网络浏览器也许可以避免这个漏洞。
四、危害描述
通过诱导受害者去浏览一个HTML文档例如网页或者HTML的邮件信息,攻击者能在包含攻击文档的域以外的域中运行脚本。通过在Local Machine域中运行脚本,攻击者能够利用运行IE的用户的权限执行任意代码。攻击者也可以读取或更改其他网站数据(包括读取cookies 或内容以及更改或者创建内容)。
现已存在针对此漏洞的攻击代码。US-CERT已经监测到的安全事件表明这个漏洞已经被利用。Ibiza trojan, W32/Bugbear的变种和BloodHound.Exploit.6 是利用此漏洞的恶意代码中的一些例子。值得注意的是任意执行的恶意代码经此漏洞传递,不同的防病毒厂商能够以不同的名称识别这些恶意代码。
一个恶意网址或邮件信息可能包含类似如下内容的HTML:ms_its:mhtml:file://C:\nosuchfile_mht!
(此 URL故意进行了修正避免防病毒软件的检测)
在这个例子中,HTML和exploit.html中的脚本将会在Local Machine 域的安全上下文中执行。exploit.html通常会包含或者下载一个可运行的净荷,例如,后门、特洛伊木马、病毒或其他恶意代码。
注意,通过加密URL可能绕过HTTP内容检查或防病毒软件。
五、解决方案
现在没有针对这个漏洞的完整解决方案。在补丁发布之前,可以参照下面的列表内容来预防。
1.关闭ITS协议处理
关闭ITS协议处理程序目的在于避免该漏洞被利用。删除或修改下面的注册键名称: HKEY_LOCAL_MACHINE\SOFTWARE\Classes\PROTOCOLS\Handler\
关闭这些协议处理程序将明显的减少Windows帮助系统的功能,并且可能导致其它的意外结果。在相关补丁测试并安装之后,应该撤消这些修改。
2.遵循好的互联网安全惯例。
这些推荐的安全措施将帮助减少被攻击的可能和减轻交叉域漏洞的影响。
3.关闭活动脚本和ActiveX控件
注意: 关闭活动脚本和ActiveX控件可能不会阻止该漏洞被利用。
在Local Machine域中关闭活动脚本和ActiveX控件可以停止一些类型的攻击和阻止利用不同的交叉域漏洞。在任何用来阅读HTML邮件的域中关闭活动脚本和ActiveX控件。
在Local Machine域中关闭活动脚本和ActiveX控件可以阻止某些利用活动脚本和ActiveX控件的恶意代码的运行。改变这些设置可能会减少脚本,Applet,Windows组件或者其他应用程序的功能。请参阅微软知识库833633号文章了解Local Machine Zone 安全设置的具体信息。注意在Windows XP SP2中包括了这个改变。
4.不要使用未确定的链接
不要点击在邮件,即时信息,web论坛或者IRC频道中的不确URL.。
5.维护升级防病毒软件
升级病毒定义库后的防病毒软件可以识别和阻止一些攻击企图。各种各样的刺探和攻击不可能完全被侦测到。不要指望单单依赖防病毒软件就可以防止该漏洞。更多的病毒及反病毒软件信息可以从网站获得
六、参考
US-CERT安全公告TA04-099A:

htm 与 html 的区别

htm 与 html 的区别

前者是超文本标记(Hypertext Markup)

后者是超文本标记语言(Hypertext Markup Language)

可以说 htm = html

同时,这两种都是静态网页文件的扩展名,扩展名可以互相更换而不会引起错误(这是指打开而言,但是对于一个链接来说,如果它指向的是一个htm文件,而那个htm文件被更改为html文件,那么是找不到这个链接的)

那为什么出现两种文件格式呢?

htm 是来源于老的 8.3 文件格式,DOS 操作系统只能支持长度为三位的后缀名,所以是 htm,但在 windows 下无所谓 HTM 与 HTML,html 是为长文件名的格式命名的。所以 htm 是为了兼容过去的DOS命名格式存在的,在效果上没有区别的。以前 htm 和 html 作为不同的服务器上的超文本文件,但现在通用。

什么是8.3文件格式? 这是一种在老的16位Win95或Win98文件系统的短文件名文件格式,扩展名只限于3位,文件名只限于8位。 如果要与16位系统交互,比如说,要把一个路径传给一个16位的程序,你就不能用长文件名,而必须对它进行转换。例如把“C : /MyLongestPath/MyLongerPath/MyFilename.txt”转换成“C : /Mylong~1/MyLong~2/Myfile~1.txt”

了解这个有什么用? 在FAT磁盘格式下的DOS中只支持8.3文件格式,如果你要在这个环境下做应用,应该要注意这个文件格式问题。在NTFS下,默认可以兼容这种文件格式,同时也支持长文件名,你也可以通过调整注册表来取消对8.3文件格式也支持。

以上是关于扩展名.htm .html .mht是一回事吗?的主要内容,如果未能解决你的问题,请参考以下文章

在网页中查看 MHTML (.mht) 文件

怎么用搜狗浏览器保存网页为mht

提问:Java中的注解与Python中的装饰器是一回事吗?

我可以将 Enum 扩展为 Enum.GetValues() 吗? [复制]

C# 从 MHT 文件中提取 HTML

前端入门