编写应用程序要注重其安全性
将深入讨论这些常见错误是什么,而且更重要的是,如何避免犯这样的错误。在许多情况下,避免这样错误的方法是细致加简单 - 但是如果您不知道如何避免错误,那么就有可能重犯这样的错误。
在本专栏中,我一般不会设法将多种不同的应用程序(如“Web 应用程序”、“基础结构组件”、“本地应用程序”或“setuid 应用程序”)分门别类。原因是什么呢?今天的应用程序正不断相互联系,它们由许多不同的部分组成。其结果是,您的“一个”应用程序可能有几个不同的部分,每个部分都属于不同的一类,这是十分可能的!但是,我认为更好的做法是,了解如何在任何情况下都能开发安全的应用程序,并随后注意何时应用特定的指导原则。
接下来的一篇专栏文章将由讨论如何验证输入开始。这比听上去还要棘手。例如,我们将看到为什么寻找不正确的输入是一个错误,而且攻击者如何能经常使用非法的负数(而不使用“-”字符)就可以潜入。以后的主题将包括避免缓冲区溢出、使特权最小化以及避免竞态状态。要通过好几篇文章才能涵盖常见的错误,但通过阅读本专栏,您将能够避免那些造成目前几乎所有的软件安全性漏洞的错误。
术语:这些词表示什么意思?
每一领域都有其自己的术语,而计算机安全性领域中的术语则有些杂乱无章,其中充斥着首字母缩写词和易混淆的词。以下几个定义应该有所帮助:
•攻击者(attacker)(也称为 非法闯入者)是这样的人:他试图使程序或计算机做某些事情,而这些事情是明确禁止做的,如为了获得或更改私有数据而闯入不属于他们的计算机。
•黑客(hacker)是计算机专家或计算机狂热者。并非所有攻击者都是黑客 - 有些攻击者根本不了解计算机。同样,并非所有黑客都是攻击者 - 许多黑客编写保护您的程序!媒体公司只关注那些攻击计算机系统的黑客,而往往忽视那些计算机的保卫者,所以有些人就使用术语“黑客”表示只进行攻击的黑客。但是,如果您认为所有的黑客都是攻击者,那么您在理解许多安全性文章时会碰到很多麻烦,所以我将使用这里指出的定义。
•缺陷(flaw)是程序中的错误,或是程序的安装方法中的错误。并不是所有的缺陷都与安全性有关。
•安全性漏洞(vulnerability)就是一个缺陷,它使程序有可能无法满足其安全性需求。
•漏洞利 |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |