- 1、本文档共8页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
NET安全编程_第4章 安全应用程序的生命周期
第4 章
安全应用程序的生命周期
本章介绍了如何将软件安全性集成到应用程序的生命周期中,并提出实际建议以帮助读
者更好理解后续章节的内容。
所谓安全应用程序是指在开发时考虑了安全性的应用程序。本书坚信:只有将安全性完
全集成于应用程序的开发过程中,只有大家把安全性和系统的稳定性、性能及功能一样
重视的时候,才能实现真正有效的软件安全性。
本书建议读者将本章阅读两次。读第一次可使读者对后续章节的技术内容有一个宏观的
认识。当读完整本书并对.NET 安全性有了更深入的认识之后,再读第二次,这时就可
以考虑如何改进开发进程来实现本书提供的有关安全性的建议和推荐。
设计一个安全的.NET 应用程序
在实际开发一个应用程序之前都要对其进行仔细设计,这种情况几乎没有例外。对较小
的项目而言,程序员可以自己做程序设计,该设计与程序运行密切相关,也不会含有多
少高水平的技术细节。对较大的项目来说,通常是安排应用程序架构师来负责一份更精
细的程序设计,之后再把开发组件的任务分配给每个开发团队。
安全性是设计过程中很重要的一部分,需要全程认真对待。一个全集成的安全策略可以
提供最强大的保护以避免应用程序遭受破坏,也可以简化将安全功能集成到程序代码中
的过程。在设计时,不能考虑集成综合性的安全模型。
作为应用程序的设计者,必须理解应用程序使用平台所提供的安全功能,同理也必须理
解其他组件的功能,例如数据库和操作系统。即使设计者不参与执行应用程序,理解这
些功能也同样很重要。本书尽可能按章节介绍.NET 提供的安全功能,以便分别详细阐
44
安全应用程序的生命周期 45
述如何在编写代码时运用安全功能;即使读者是参与最抽象级别设计的程序架构师,本
书也建议你阅读本章后续内容。
在程序设计中应用安全性,首先应识别受限制资源和秘密。这里回忆下第1 章介绍的两
个概念:受限制资源是指访问权限被控制的功能性资源,秘密是指针对第三方隐藏的一
些数据。
识别受限制资源
受限制资源一般分为以下三类:
功能性资源(Functional resources )
功能性资源是指应用程序提供的功能,例如,使用银行应用程序来批准借贷的功
能。功能性资源很容易被识别,可以使用应用程序的功能指定来定义它。
外部资源(External resources )
外部资源是指那些支持应用程序的资源,例如数据库。访问外部资源应该和访问功
能性资源联合使用,例如,如果用户不能通过功能性资源批准借贷,那么他也不能
被授权直接访问数据库。该联合使用证明了第1章介绍的广泛安全性这种观点的必
要性。
破坏性资源(Subversion resources )
破坏性资源表面看来并不是很重要,但是却可以把它和功能性资源或外部资源联合
使用以破坏应用程序或应用程序的操作平台。例如,某项破坏性资源能够向操作系
统使用的文件写入数据从而强制执行安全策略。
创建应用程序的受限制资源列表是理解待定义的信任关系的基础,本书将在下节讨论该
信任关系。对于自己开发识别受限制资源的技术,本书提供如下建议:
考虑自己的应用程序与其他系统交互的方式。仔细思考自己的应用程序基于其他服务的
方式。为了保护其他系统,可能会限制访问某些资源,即使它们不能被用于破坏该
应用程序。
使用直觉。不要一味遵循商业的指定——作为一名架构师,应该负责设计出满足项目中
所有商业和技术目标的程序,哪怕该目标没有被详细说明。
定义并遵循设计标准。通过在所有项目中应用公共设计方法,则可以创建功能性模式,
其作为受限制资源可以很容易被识别。
开放设计共同检查。不要独自工作——征询同事对设计的建议。每个人都有自己不同的
思维方式,在小组中共同检查应用程序的设计可以高效率地识别出破坏性资源。
46 第4 章
识别信任
一旦识别出应用程序使用的受保护资源,就可以定义信任级别。用户或客户具有这些信
任级别后,才能被授权访问应用程序。信任可以被授予给一大群操作实体,包括用户、
代码、外部库和不同的计算机。
信任用户就意味着授权个人使用限制性资源的功能。例如,在一个银行应用程序的开发
中,可能就要允许负责借贷的官员批准别人的借贷请求。.NET 支持基于角
文档评论(0)