|
对秘密信息进行编码
在代码中处理秘密信息时,你应该将其停留在明码(也就是非密码)中的时间减到最少,这样就会降低秘密信息泄露到页面文件中的风险。一旦在代码中使用了秘密信息,就应假数据覆盖缓冲器,使用的语句是memset()。 关于如何最好地“擦洗掉”未使用的数据有许多理论,但是以下这个C/C++ 代码的片段就足够了:
void ScrubBlob(void *b, DWord cb) {
for (int i=0; i < 7; i++) {
memset(b,0xFF,cb); // all 1's
memset(b,0x00,cb); // all 0's
memset(b,0xAA,cb); // 10101010
memset(b,0x55,cb); // 01010101
}
ZeroMemory(b,cb);
}
最后一个技巧
如果应用程序中包含测试例程代码,那么一定不要采取默认方式最后安装它们。多年以来,许多Internet上的系统都因其测试例程而容易遭受攻击,因为那些被默认包含的测试应用程序本身就有许多弱点。 |
|