第16章 Web应用的安全

本章将继续介绍应用的安全问题,只不过将该话题扩展到如何保证整个Web应用的安全。

事实上,Web应用的每个单个部分都需要进行安全保护,防止可能的错误使用(偶然的或有意的),此外,还需要定义一些策略来帮助开发人员开发更安全的应用。

在本章中,主要介绍以下内容:

■处理安全性问题的策略

■识别所面临的威胁

■了解与我们“打交道”的用户

■代码的安全性

■Web服务器和PHP的安全性

■数据库服务器的安全性

■保护网络

■计算机和操作系统的安全性

■灾难计划

16.1 处理安全性问题的策略

互联网的一个最大特性就是所有机器的开放性以及相互之间的可访问性,这个特性同样成为Web应用开发人员必须面对的最大挑战。由于存在如此之多的计算机,有些用户就会存在一些不道德的想法。由于存在这样的威胁,向全球网络开放一个处理可能的机密信息(例如,信用卡号、银行账户信息或者健康记录)的Web应用的想法就需要慎之又慎。但是商务业务必须开展,作为Web应用开发人员的眼光就不能仅仅停留在对应用的电子商务部分进行安全保护,必须开发一个能够计划和处理安全性问题的方法。关键是要找到一个能够合理平衡两种需求之间的方法:保护自身与能够执行业务的可用应用。

16.1.1 以正确心态为开始

安全性并不是一个特性。当编写一个Web应用以及决定应用的特性列表时,安全性并不会随意的就包含在这个列表,并且由一个开发人员的几天工作就可以完成。它必须出现在应用的代码设计阶段。对安全问题投入的精力永远不会结束,即使是在这个应用已经部署、开发工作进展缓慢(如果没有完全停止)。

在构思和计划我们系统可能遭遇的各种攻击阶段,也就是最开始的阶段,我们可以设计代码来减少这些问题发生的可能性。这也可以避免在项目后期阶段当我们将注意力转移到安全性问题(当我们几乎肯定没有发现更多潜在问题)时,需要重新更改所有代码和设计。