我的页面中存在这样的注释标记: <div id="middle">
当用ie6打开时,有时候会崩溃。Firefox和Opera是正常的。 如果吧其中的注释标记删除,就好了。 在网上查了一下,找到了一篇老帖子,也是关于ie对注释标记的bug:
|
chao008 | 2004-3-27 07:20 AM |
通过这个万年历的一点启示:
http://www.phpx.com/happy/thr60721.html
把这个万年历保存为htm文件后,不能直接运行,只能保存到服务器的目录下用http://localhost/1.htm才能 运行,为什么?
如过把前边的注释去掉就可以直接运行了,如:
<!--DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0050)<a href="http://61.143.141.188/wap/mycardv2new/calendar.htm" target="_blank">http://61.143.141.188/wap/mycardv2new/calendar.htm</a> -->
为什么???
chao008 | 2004-3-27 07:36 AM |
创建时间:2001-11-04
文章属性:原创
文章来源:tombkeeper@126.com
文章提交:tombkeeper (tombkeeper_at_126.com)
包含畸形注释的HTML文件可使IE 5.0以上版本崩溃
发现者:tombkeeper@126.com
发现时间:2001.10.30
描述:
IE 5.0以上版本及使用IE内核的应用程序在解析包含畸形注释的HTML文件时会崩溃
影响系统:
所有Windows系统,IE 5.0以上版本及使用IE内核的应用程序
详细:
5.0以上版本的IE在保存网页文件时会自动在文件中加入类似下面的注释:
<!-- saved from url=(0020)http://www.someHost.com -->
其中“0020”表示是从首页上保存的,不同的数字表示不同的位置。IE对于大多数HTML
中的注释是不做解析的,而唯独设法读取这一行注释的信息。进一步的分析可知在IE中
这个数字的变量名是“%04d”,正常情况下IE会作出如下解析“url=(%04d)”,当缺乏
"("时就会解析为“url=0x00%04d)”最终导致边界问题,在90%以上的情况下都会发生
程序的崩溃,但并不会引起缓冲溢出或更进一步的安全问题。
通过IE内核处理HTML文件的其它应用程序,包括一些邮件程序也受到影响,会发生
崩溃。
此问题本身只能作为一种D.O.S.攻击,并不会引起非授权访问类的严重安全问题,
但由于应用程序出错时会将内存镜像转储为Everyone可读的文件,其中会包含很多敏感
信息,最终可能会导致严重后果,具体参见拙作《drwtsn32.exe故障转储文件默认权限
设置不当》
测试:
在任意的HTML文件或HTML邮件中添加如下代码:
<!-- saved from url=)http://ie.will.crash -->
解决方案:
微软尚未对此做出反应。
在可用的补丁出来之前,可采取以下措施:
1、不要以HTML方式查看邮件。
2、改用IE 5.0以下版本,或其他网络浏览器。
3、参考《drwtsn32.exe故障转储文件默认权限设置不当》防止进一步的安全问题。