01 安全编程概述.ppt

  1. 1、本文档共57页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
01 安全编程概述.ppt

第1章 安全编程概述 简介 现代生活中,计算机的应用已经越来越广泛,给我们的生活带来了巨大的方便。计算机系统的安全问题也越来越受到重视。软件,是组成计算机应用的一个重要部分,当软件由于不安全而遭受攻击,或者运行期间出现错误时,会给用户带来巨大的损失。如犯罪分子利用软件漏洞来获取有价值的信息,用于牟取利益;又如软件因为开发时没有考虑运行时的具体情况,而造成运行的突然崩溃;等等。 面对越来越频繁的软件安全隐患带来的损失,对软件的开发者——软件工程师,提出了更高的要求,要求程序员能够编写出错误更加少的程序,并且能够及时修复软件出现的突发问题,切实为软件使用者服务。本书讲解的安全编程技术主要就是针对这些问题进行解决。安全编程,是软件质量的重要保证,在软件开发和程序设计中具有重要地位。 不过,实际的软件工程中,安全隐患的出现往往来源于多个方面,给软件系统带来的危害也是多方面的。安全问题的出现,由于原因众多,而某些安全问题又具有不间断发生,难于调试等特点,因此,很难用一个单纯的理论来完全地阐述安全编程问题。基于这个考虑,安全编程的内容只能针对各个侧面来进行阐述,如异常情况下的安全、线程操作中的安全、数据安全加密等等。 主要针对问题: 软件安全问题出现的原因 软件安全问题的表现 安全问题分类 安全问题详细介绍 本书内容 1.1 软件的安全问题 1.1.1 任何软件都是不安全的 安全问题的典型表现: 使用某些交易软件的过程中,某些敏感信息,如个人身份信息、个人卡号密码等信息被敌方获取并用于牟利; 访问某些网站时,服务器响应很慢,或者服务器由于访问量造成负载过大,造成突然瘫痪; 自己的系统中安装了具有漏洞的软件,漏洞没有解决,敌方找到漏洞并对本机进行攻击,造成系统瘫痪 自己花费精力完成了一幅漂亮的风景画,放到网上去,没有考虑版权,被他人随意使用却无法问责; ………… 因此,对软件的开发提出了两个新的要求: 软件复杂性加强; 可扩展性要求的提高; 软件安全的挑战性 一方面,软件复杂了,安全问题也表现得很复杂,无法得到全面的考虑,而工程进度又迫使开发者不得不在一定时间内交付产品,代码越多漏洞和缺陷也就越来越多; 另一方面,软件的可扩展性要求也越来越高,系统升级和性能扩展成为很多软件必备的功能;可扩展好的系统,由于其能够用较少的成本实现功能扩充,受到开发者和用户的欢迎;但是由于针对可扩展性必须具备响应的设计,软件结构变复杂了,另外,添加新的功能,也引入了新的风险。 怎样解决这些安全问题? 首先,大多数人可以想到的方法是软件测试,通过测试来减少软件中的缺陷。但是,由于软件系统规模越来越大,软件开发的进度要求越来越高,不可能在有限的时间内考虑所有安全方面的问题,即使进行了全方位的测试,也只能对所有的测试案例进行很小范围的覆盖。如下图: 因此,软件测试无法完全保证软件的安全性。一方面是想要实现全面的测试,找出全部的错误,另一方面又要保证工程的进度,早日解决用户的问题,往往无法两全,只能在其中找到平衡点。 关于测试,另一个问题是,全面的测试,一般情况下是针对所有可能出现的隐患进行测试,但是这需要对软件的隐患具有全方位的预见性。而在有些情况下,很多隐患是在运行期间才显露出来的,软件的开发者很难在开发阶段预见到所有可能出现的隐患,容易让测试陷入盲目。 因此,测试只能减少软件安全问题的发生,但是不能完全解决安全问题。业界大都公认一个事实:几乎所有的软件都是带着安全隐患投入运行。 另一个解决安全问题的方法可能就是在测试前就尽量多地解决安全隐患。 在设计、编码阶段,熟练的软件设计人员和软件工程师完全可以尽可能多地将安全问题进行考虑并加以解决。如果在程序设计的时候就能够尽量地考虑安全问题,对软件的安全性也就会有更好的保证,可以大大减小测试的负担。这就是《安全编程技术》所阐述的内容。 近年来,不管是在应用方面还是在研究方面,安全编程技术越来越受到了重视,本书将针对该话题中的若干方面进行讲述。 1.1.2 软件不安全性的几种表现 软件的不安全性,一般情况下的受害者就是其直接用户。从用户的角度来看,软件的不安全性主要体现在两个方面: 软件在运行过程中不稳定,出现异常现象、得不到正常结果、或者在特殊情况下由于一些原因造成系统崩溃。比如: 由于异常处理不当,软件运行期间遇到突发问题,处理异常之后无法释放资源,导致这些资源被锁定无法使用; 由于线程处理不当,软件运行中莫名其妙得不到正常结果; 由于网络连接处理不当,网络软件运行过程中,内存消耗越来越大,系统越来越慢,最后崩溃; 由于编程没有进行优化,程序运行消耗资源过大;等等。 敌方利用各种方式攻击软件,达到窃取信息、破坏系统等目的。比如: 敌方通过一些手段获取数据库中的明文密码; 敌方利用

文档评论(0)

zzqky + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档