Chapter 6. 程序内部结构与解决方案

 

Like a city whose walls are broken down is a man who lacks self-control.

 Proverbs 25:28 (NIV)
Table of Contents
保证接口的安全
特权最小化
避免创建Setuid/Setgid脚本
安全地配置并使用安全的缺省值
安全地失败
避免竞争状态
只信任值得信任的通道
使用内部一致性检查代码
自我限制资源

保证接口的安全

接口必须小(尽可能地简单)、窄(只提供必需的函数)而且不可绕过。信任必须最小化。应用程序和数据浏览器可能被用来显示外部开发的文件,所以一般不允许它们接受程序,除非你愿意完成大量的创建安全沙箱所必需的工作。载入应用程序时就运行的一个自动执行的宏是最危险的;从安全的观点来看,除非你对宏可以做什么有极强的控制(一个“沙箱”),这会是一个等待发生的灾难,而且过去的经验表明,真正的沙箱是很难实现的。