WinXPSP2禁用Xbm的原因及解决办法(转)[@more@]   大家所热切期盼的XP的SP2补丁正式版本已经放出,根据官方消息,中文版本的SP2也即将在随后的8月21日左右放出。      在SP2补丁包里,除了对bug的修复和功能的加强外,也对安全控制做了相应修改,指定了更严格的默认安全策略,以保证用户安全。      在更改后的安全策略中,因为基于安全因素的考虑,默认去掉了对 image/x-xbitmap 图片格式的支持(该图片的后缀名为Xbm)的支持。去掉支持一种危险的图片格式本身是无可厚非的,那么,为什么我要专门提到这个图片格式,它有什么特别之处,一般运用在什么场合呢? 说x-xbitmap格式的图片(以下简称为Xbm格式)的图片特殊,就在于它并不跟gif,jpg等图片格式一样,是一个真正的纯2进制图片格式,而是ascii码文件--换句话说,它是一个纯文本文件,在Windows系统下,系统浏览器将它翻译成图片来进行显示。       解析Xbm图形格式   Ok,让我们先来看看这种特殊图片的格式的例子:      新建一个文本文件,将以下内容复制过去      #define counter_width 48   #define counter_height 9   static unsigned charcounter_bits[]={ff,3c,7c,3c,70,3c,fe,7c,fe,7c,78,7c,ee,ee,ee,ee,7c,ee,e0,ee,60,ee,74,ee,70,fe,30,   fe,70,fe,38,ec,e0,ec,70,ec,1c,e0,ee,e0,70,e0,fe,7e,fe,7e,70,7e,fe,3c,7c,3c,70,3c}      然后,将此文本文件保存为名字为 test.Xbm的文件。      接下来,让我们看看如果在ie中打开它,会出现什么情形??(新开一个ie,然后将test.Xbm直接拖拽到它上面),哈,出现了如下图一样的情景,在浏览器中出来的,已经不是我们的文本,而是一个黑白的图片了!      (注意:你可以在它上面点击鼠标右键,"图片另存为"选项是高亮的,以证明这的确是一张图片。)      让我们看看上面那代码中,每一行的意义:      #define counter_width 48 这里定义了图片的宽度,一般都设置为8的整数倍,因为我们想显示的是6个数字,所以就设置成了8*6=48的宽度      #define counter_height 9 这里设置了图片的高度,可以任意设置,但是注意,这里的数字直接决定了下面的数组中,是用几组数来表示一个显示出的数字      static unsigned char counter_bits[]={7c,3c,7c,3c,70,3c,fe,7c,fe,7c,78,7c,ee,ee,ee,ee,7c,ee,e0,ee,60,ee,74,ee,70,fe,30,   fe,70,fe,38,ec,e0,ec,70,ec,1c,e0,ee,e0,70,e0,fe,7e,fe,7e,70,7e,fe,3c,7c,3c,70,3c}      在这里,是图片用来显示内容的十六进制的代码,在这里,是9*6=54个数字来表示,值得一提的是,由于在图片显示中,是显示完了一行后,再显示第2行,直到最后一行,因此更为准确的描述是6*9显示,每6个数表示一行(因为我们显示了6个数字),一共9行(我们的定义中,是采用的高度为9的数组)      正如static unsigned char英文意思为静态的,无符号的,烧焦的。它只能用来显示黑白两种颜色。二进制中的1将来用显示为黑色,0为白色。      因此,上面的7c、3c这样的数字,就是一个256位的2进制,其中的1表示黑色,0表示白色,由此绘制出每个数字的图形。      由于Xbm文件的性质决定,它只能显示黑/白两种颜色,而且以数组的方式来表现每个要显示的图形,注定了不能用它生成太复杂的图案。那么,这样的图片格式到底有什么用呢??当然有的,不少asp论坛/聊天室的登陆验证码,就是用这样的方法在asp中动态生成的。       SP2为什么会禁用Xbm图形格式   那么,象这样一个被广泛采用的生成验证代码的技术,为什么微软在XP的SP2升级包中又要禁止掉它呢??这就需要从Xbm的漏洞谈起了。      Microsoft Internet EXPlorer和Outlook EXPress在处理WEB页,HTML邮件,EMAIL附件中畸形Xbm图象文件会导致崩溃,问题存在于对Xbm文件中的内容缺少检查,MSIE按照图象规定的长度和宽度分配内存,攻击者可以提高超大的长度和宽度数值导致系统消耗内存或者访问冲突。      换句话说,如果构造一个长宽的尺寸特别大的Xbm文件,很容易导致Windows的内存耗尽,导致程序无响应或者死机。本身来说,这不算一个特别严重的漏洞,因为根据安全公告,无法造成溢出,不会存在太大的权限漏洞。但是由于XP的SP2强调安全性,因此将Xbm功能禁用了。从这点上可以看出,SP2对于安全的确比较重视,将有漏洞的功能基本上都补上或禁用了,作为网络管理员,我对微软的做法表示支持,因为操作系统默认设置的不安全,常常是造成非专业用户被攻击的首要因素。       解禁方法:   由此看出,以后我们访问某些采用生成Xbm作为验证代码的站点的时候,就相当不方便了,如果有必要,可以通过简单的操作注册表恢复我们需要的功能。      打开注册表,然后进到键值[HKEY_LOCAL_MACHINESOFTWAREMicrosoftInternet EXPlorerSecurity]将blockXbm的值改为00000000(dword,双字节),没有的话新建立一个就可以了。      之后重新启动机器,则Xbm格式的图片就可以看到了。      从SP2禁止Xbm的趋势看出,微软打算似乎已经开始打算放弃对Xbm格式的支持了。那么,作为程序编写者,有必要未雨绸缪,寻找其他生成验证码的途径。在php中,可以通过调用gd库等方式生成jpg/gif等图形格式的注册验证码,那么在asp中有其他的办法么?      事实上图片验证密码的关键是--不能在客户端留下图片的真实url,或可对应反推源地址的信息,因此asp可以采用以下2种方式实现支持SP2的图形验证码。      如果是购买的虚拟主机,那么可以采用将jpg/gif图片放到数据库,然后用session传值的方式,最后利用asp直接从数据库中输出图片,这方法的好处是不需要特别设置服务器端,坏处则是每次生成验证图片时都会需要与数据库连接,增加了开销。      如果是有管理员控制权限的用户,可以考虑采用第三方组件来实现。天缘个人推荐 ASP图象组件shotgraph ,它的免费版本对生成的图形有一定限制,不过已经足够用来制作验证码了。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/8403220/viewspace-941156/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/8403220/viewspace-941156/

WinXPSP2禁用Xbm的原因及解决办法(转)相关推荐

  1. UIScrollView无法滚动可能的原因及解决办法分析

    为什么80%的码农都做不了架构师?>>>    -&: UIScrollView无法滚动可能的原因及解决办法分析 * 没有设置contentSize      -> c ...

  2. Frameset导致Cookies和Session丢失的原因及解决办法

    参考资料 1 Frameset导致Cookies和Session丢失的原因及解决办法 http://blog.csdn.net/zl_c/article/details/1742775  2 使用fr ...

  3. MySQL 主从同步延迟的原因及解决办法

    首页 博客 专栏·视频 下载 论坛 问答 代码 直播 能力认证 高校 会员中心 收藏 动态 消息 创作中心 MySQL 主从同步延迟的原因及解决办法 hao_yunfeng 2018-09-04 23 ...

  4. (linux vm虚拟机网络连接失败,重启网卡失败原因及解决办法)

    linux vm虚拟机网络连接失败,重启网卡失败原因及解决办法 0 .vm虚拟机下的网络三种连接方式详解 1. vm虚拟机以及宿主机没有vmnet1 vmnet8 网卡 2 网卡配置文件出错 测试网络 ...

  5. 计算机名打印机无法共享,打印机共享不了怎么回事 打印机共享不了原因和解决办法【详解】...

    随着我们质量的不断的提高,我们在工作和生活方面,对效率的提高也越来越高,打印机,作为一种能够连接电脑,将数据和资料快速打印出来的工具,它解决了以往需要靠抄写才能完成的工作,它不仅节省了时间,还确保了数 ...

  6. 计算机开机自动进入bios,电脑开机自动进入bios界面的原因及解决办法

    电脑开机的时候碰到自动进入BIOS界面,需要按F1才能继续运行,这是怎么回事呢?又该如何解决呢?一般来说有三种原因会导致这种情况.下面给大家详细介绍,需要的朋友参考下吧! 1.原因一:你的BIOS电池 ...

  7. oracle redo wait较高,【案例】Oracle等待事件latch:row cache objects原因和解决办法

    [案例]Oracle等待事件latch:row cache objects原因和解决办法 时间:2016-11-05 13:41   来源:Oracle研究中心   作者:HTZ   点击: 次 天萃 ...

  8. 错误代码5 你的远程桌面会话服务器,“你的远程桌面会话已结束,可能是下列原因之一”解决办法...

    "你的远程桌面会话已结束,可能是下列原因之一"解决办法 如果服务器开启了远程桌面,到其他电脑却不能登录,请检查服务器 一.检查服务器的防火墙,是否允许远程桌面,远程桌面的默认端口是 ...

  9. JVM出现OOM的八种原因及解决办法

    本文源自转载:JVM出现OOM的八种原因及解决办法 目录 一.堆溢出 1.1 原因 1.2解决方法 二.永久代/元空间溢出 2.1 原因 2.2 解决方法 三.GC overhead limit ex ...

最新文章

  1. 西班牙放大招,利用区块链技术防腐
  2. 关于比特币,人民日报发话了!
  3. 云路由 vyatta 体验(六)防火墙
  4. 半吊子菜鸟学Web开发 -- PHP学习 4 --异常
  5. tomcat配置log4j日志
  6. CNI:容器网络接口详解
  7. 单词嵌入_神秘的文本分类:单词嵌入简介
  8. 前后端分离重复提交_阿里一面:如何保证API接口数据安全?
  9. spring事务到底用于service层还是dao层
  10. Windows XP 下的 MySQL+Apache+PHP 运行环境架设 (顶)
  11. linux给命令起别名命令,alias命令 – 设置命令别名
  12. Makefile万能写法(gcc程序以及arm-linux-gcc程序)-转
  13. 一个大数据应用是如何炼成的?
  14. 总结必须学习的10项.NET技术
  15. 商品分析是什么?该怎么做(入门版)
  16. 计算机二级office学习之Excel操作题考点整理
  17. 【人工智能】180页PPT,讲解人工智能技术与产业发展
  18. java xml生成word文档_java生成word文档
  19. 蓝牙BQB证后还会被查的3种情况,蓝牙组织审查
  20. 刻意练习-理解哈夫曼树构建哈夫曼表C语言

热门文章

  1. 责任链模式:优雅地处理请求的设计模式
  2. glob.glob()的一个坑
  3. xrea mysql密码_Xrea日本老牌免费空间开放申请:1GB空间可绑域名
  4. 个人简记为css3,H5+css3春节贺卡之个人收获
  5. MTK 关于电池等级问题
  6. N97降到3200 年底热门手机降价大预测
  7. AD RMS (一) Active Directory Rights Management Services (AD RMS) 的新增功能
  8. 微软拼音输入法 2010 Beta 2 开放下载
  9. 4.1-WY33 计算糖果
  10. “专精特新”发展概况