提高应用程序强度的安全性方式(一)
2009-04-18 14:00:04 来源:WEB开发网虽然这些层次显示了一个指导方针,重要的是考虑每一个应用程序通过确定层级在其适当的位置,反应了一个应用程序和它的使用。一些程序或多或少的都有层次,可能区别于下一个应用程序。
假想敌Think Like The Enemy
当到达功能和相应的应用程序设计,最常见的错误是只考虑理想世界的功能。这是一个专门定义应用程序功能的行为,通过你想要用户做的最好的方案。总之,人们会犯错误而且做一些从来没在应用程序中做过的事情。如果一个应用程序的限制没有被界定或是处理,影响是很严重的。另外一些人试图通过做其他人不想让他们做的一些确切的事情在任何程序中找到漏洞。因此,人们在程序设计阶段期间会更容易积极一些,通过思考各种各样不被期望的表现和行动,去实现被保护不让发生的功能。每一个上述提到的程序中的层次会有熟悉的攻击类型可以被避免和保护。
同样重要的是了解在一个应用程序周围的风险。 分析风险的最好办法就是把程序放入一个欲用的环境中来——要和其他有或高或低风险的程序有关系,而且数据也是用它的。是否程序的性质,如电子商务的应用程序,由于用于工作的过多的重要敏感的信息,自然使它成为更具吸引力的目标?与其他系统作用的程序,它的敏感和重要的资料在哪里?程序本省是否是个一个机构命脉的一部分?在评估程序安全性的时候,所有这些方面都应该被考虑到。如果一个程序的应用增加了一个机构的风险,就要适当考虑增加应用程序的安全性。
认证Authentication
当以某种用户交互,多系统交互或是任何涉及外国部分形式创建应用程序时,很可能会使用一些认证形式来保护程序。最普遍的认证错误是:
1. 没有验证。
2. 定义静态和硬编码的认证信息。
3. 否认认证的有效性通过较差的认证管理。
例如,最常用的认证机制是用户名和密码。即使这不是一个强有力的验证形式,但是它可以安全使用来提供一个有水平的安全性,这取决于其所处环境。但是,有很多方法可以展示用户名和密码认证并非安全:
1. 在网络上执行明显内容的验证。
2. 将密码储存在明码文本的文件或是数据库中。
3. 硬编码证书到程序中。
4. 创建预先定义/静态的特殊账户。
在用户名和密码验证中可以增加安全性的一些方法:
1. 利用加密的网络认证,如SSL/TLS。
2. 当储存密码时,重新存储密码如果不需要覆盖明码文本的原始密码。如果想要恢复原来的密码,使用加密来安全的存储它(见以下加密部分)。
3. 授权使用交长的混合字符的密码,包括混合字母,数字和特殊符号。
系列文章:
提高应用程序强度的安全性方式(二)
提高应用程序强度的安全性方式(三)
更多精彩
赞助商链接