在软件项目开发时,安全是一个容易被忽略的问题,但又可能会造成严重损失。所以在开发时有必要对安全问题引起重视,防患未然,构建安全软件。
一、软件安全问题
软件安全问题本质上也是一种技术风险,我们可以借鉴对风险管理的方法来改进软件的安全问题,即风险识别、风险量化、应对计划、风险监控。
识别和量化,软件中的安全问题主要分为以下三类:
1、恶意输入
如SQL注入、XSS攻击。
应对方式就是对用户输入的数据做严格的校验、格式化。
2、假冒身份
有些程序对用户身份的校验比较弱,可能会出现用户做出超越权限的事情。
应对策略就是对用户的身份与权限做验证,涉及敏感权限的操作,甚至要做两重验证。
3、数据泄露
如用户敏感信息(登录用户密码、信用卡信息、)及服务器的敏感信息(数据库连接信息)等。
我们不能假设数据存储是安全的,而是要考虑到数据是有泄露的可能的,提前做好预防措施,对敏感数据进行加密。
二、如何预防
在识别和量化风险后,接下来就是要制定应对计划。
应对安全问题,最好的方式就是在整个生命周期中都重视安全问题,各个阶段都考虑到安全方面的问题。
1、需求阶段
在确定需求,做产品设计的时候,不仅考虑功能上的需求,也要考虑安全方面的需求,这样才能不会轻易遗漏安全方面的架构设计。
2、设计阶段
把安全加入到设