安全性不会降低应用的性能
来源:互联网 发布:淘宝上万斯正品有哪些 编辑:程序博客网 时间:2024/05/19 19:31
这里存在一个普遍的谬论,认为安全控制引入所造成的开销会使应用程序变得太慢而不被客户所接受。因此当程序开发人员在对比安全性和性能的时候,性能往往会显得更加重要。这最终导致了这个应用程序会漏洞百出。
咨询公司Denim Group的CTO说:“我们应该往后退一步并且重新评估安全控制会影响性能这一断言,如果你刚刚开始就已性能的优化为主这将是一个非常错误的结论,一个明智的做法是先构建应用的安全控制,接下去如果你发现了性能问题再开始进行性能优化。”如果一个应用程序以性能为主而忽略了安全控制的话,那么最终它会因为本身的安全漏洞问题而屈服,会使软件的性能变成一个争议的话题。另外一方面,如果在程序中加入了过多的安全控制,将会影响程序的可用性。由于不可能存在两个完全相同的应用,因此也不可能创建一个适用任何程序的具体的安全控制清单。David Lindsay 说:“安全控制需要完全依赖于有问题的程序或者系统。” David Lindsay是咨询公司Cigital的安全顾问。
为了在安全性和可用性之间达到平衡,安全控制应该从风险管理的角度来看待。Lindsay说:“应该从软件的架构开始注入安全性的概念,并且在软件开发的过程中继续保持这种理念。应该在软件架构的层次就做出安全控制的决定,一旦你在架构的过程中注入了安全控制的理念,那么就应该在代码的各个部分都有安全控制的理念,并且这应该是一个程序员的职责。确保正确架构的组件植入代码中。”
这里有三个在应用中构建安全控制的实践例子。
危险建模在架构的过程中就进行了。从架构的角度来观察一个应用该如何构建,数据在应用中该如何传递并且如何存储数据。Lindsay说:“从应用的业务风险角度来理解安全性这也是一个方法。”从数据流在一个应用中的传递,你可以发现应用的漏洞。
进行头脑风暴
头脑风暴也是在软件的架构过程中进行的。然而危险建模是一个非常抽象结构性的过程,头脑风暴更易懂。它包括考虑用户使用场景和软件可能被错误使用的方式。举例说明,考虑一个在线银行软件。Cornell问:“在什么情况下,这会被滥用”,“我们不会希望一个非系统用户可以将钱转入到一个外部账户中,我们也不希望系统内部用户可以将别人的钱转入到他们自己的账户中。”一旦这些滥用的情况被发现,程序就可以设置一些检查点来阻止这些错误在系统中发生。Cornell说:“如果这些在先期都做到了,那么这并不会耗费很大的成本。这样可以更加主动的发现设计中那些可能导致巨大成本去修复的缺陷。”
输入验证
Cornell认为,从编程的角度来看,输入验证是一个能够实现的最好的安全方式。然而这又让我们回到了安全控制和性能哪个重要的争论中。“有一个传统的说法,如果你做了输入控制,那么你就抹杀了系统的性能。事实上,从数据分析上来看,这是一个非常武断的结论。” Cornell说:“只有执行不力的安全控制才会影响系统的性能。”
Cornell说:“输入验证本质上是阻止了漏洞被利用的可能性.本文原文为http://searchsoftwarequality.techtarget.com/tip/Application-development-Security-that-wont-weaken-performance
- 安全性不会降低应用的性能
- 持续提高 Android 应用的安全性与性能
- 持续提高 Android 应用的安全性与性能
- 《高性能iOS 应用开发》之降低你 APP 的电量消耗
- sqlserver降低锁级别,能减少死锁的可能性(当然,数据安全性会稍稍降低?)
- 泛型真的会降低性能吗?
- 品高云能否对传统应用的性能、可靠性、安全性、扩展性等带来提升?
- 有关WEB应用的安全性
- redis的数据安全性和性能保障
- 未来几年,Google Play会提高应用安全性和性能
- 持续提高安卓应用安全性与性能
- 怎样降低Struts中不需进行业务处理的性能损耗!
- 降低显示列表上的复杂性来提高性能
- 降低显示列表上的复杂性来提高性能
- 蓝牙听音乐时的同时使用 Wifi 性能会降低
- 降低Nginx代理服务器的磁盘IO使用率,提高转发性能
- JAVA反射会降低你的程序性能吗?
- 降低Nginx代理服务器的磁盘IO使用率,提高转发性能
- 软件开发团队主管易犯的十个错误
- 平移向量:将一个具有n个元素的一维向量向左旋转i个位置
- Java深度理解——Java字节代码的操纵
- 动态修改页面导航的问题!(sitemappath + web.sitemap)
- 2046
- 安全性不会降低应用的性能
- smoj— 1053 分隔宝石
- 让你的 C 程序更有效率的 10 种方法
- HOJ12138
- VC++ - MSVCP80D.dll 找不到的解决方案
- 在Struts2中使用OGNL
- 你是优秀程序员吗?
- ubuntu 这可怕的弹出窗口啊---“Enter password to unlock your login keyring”
- hdu 2441-ACM(Array Complicated Manipulation)(数学)