一些朋友曾向笔者炫耀过他们从网上下载的一些可以获得Windows密码编辑框中密码的小程序。笔者发现这些小程序的实现原理大同小异,而且远没有大家想像中那么神秘。
这里我们简单分析一下获取Windows密码编辑框中密码的原理,然后介绍几种可以防止密码被他人偷窥的方法。
获取密码的原理
绝大部分Windows程序均直接或间接地采用了Windows提供的Edit标准控件作为密码编辑框,只不过将Edit编辑控件的Password属性设置为True而已。除了输入的内容在屏幕上显示为指定的字符(如星号)之外,其余与普通Edit编辑控件并无任何区别。
众所周知Windows本身存在许多安全漏洞。密码编辑框可以算得上是一个非常严重的安全漏洞,因为不论什么程序只要向Edit编辑控件发送一条WM_GETTEXT消息即可获得其内容,即使Password属性设置为True也是如此。密码偷窥程序正是利用了这一安全漏洞而达到获取密码内容的目的。
防范被偷窥的方法
防范密码被他人偷窥的方法不外乎有以下几种:
1.密码输入完毕应立即退出密码对话框。否则,一旦因业务繁忙而不得不暂时离开一会,便会给他人留下可乘之机。
2.一定要清除密码对话框中“保存密码供下次使用”之类的选项。这是因为一旦选择此类选项,下次别人就可以随心所欲使用您的账号等资源而不用输入任何密码,或者干脆用本文所述方法编写一个小程序轻而易举甚至是一劳永逸地获取您的密码,并且很可能用于其它目的。这并非耸人听闻,因为如果你经常在多个地方使用同样的密码,如信用卡和上网账号等,那就一定得小心了。
3.编写自己的密码编辑控件,这种方法最为安全。