应用软件开发安全
应用软件开发安全

精品word完整版-行业资料分享应用软件开发安全规范需求阶段规范 建议1 应用系统应该包含身份认证功能,或者使用外部的集中身份认证系统的要求,并且明确对用户身份认证体系强度的要求,以及认证失败后的处理方式。
2 应用系统应该包含用户权限分配和管理功能,应该根据系统所处理的业务数据的保密性、完整性要求,确定系统用户权限访问控制模型和权限的颗粒度要求,同时体现职责分离的原则。
3 应用系统应该考虑到数据安全和冗余恢复相关功能需求。
4 应用系统应该包含安全日志审计功能,并明确对于日志内容的要求。
应用系统审计的事件应该包括但不限于以下类型:审计功能的启动和关闭修改审计功能的配置登录和退出的时间各种违例行为对重要数据的变更操作对应用系统的维护操作,包括参数修改日志应该至少记录以下信息:事件的发起源用户标识(终端用户实体或系统内部调用用户)事件类型事件的日期和时间事件的结果:成功或失败受影响的数据或资源5 明确应用系统所处理的业务数据范围和内容,针对不同安全级别的数据在应用系统不同处理过程中对机密性、完整性和可用性的要求,定义其对安全保护的具体需求。
6 针对不同数据对安全保护的要求,评估应用系统相关的硬件平台、操作系统、基础架构、网络通信、中间件和服务是否能够满足要求。
7 针对应用中对数据处理的整个过程,明确其对监控和检查的要求,包括日志审计、完整性检查、出错检查等。
设计阶段规范 建议1 为了保证应用系统的安全性,外部系统的安全应当包括如下几个方面:应用系统服务器硬件物理安全应用系统服务器操作系统安全应用系统数据库的安全应用系统的存储安全应用系统用户终端安全应用系统网络通信安全2 身份识别和认证不同安全级别的系统对用户身份识别和认证体系的强度要求也不同, 按照强度由低到高分别有以下几种方式:用户名、口令认证一次性口令、动态口令认证证书认证生物特征的认证(指纹、掌纹、视网膜等)3 身份识别和认证认证失败后的处理方式:连续失败的登录尝试后锁定帐号,并把事件内容记录到审计日志中。
软件开发中的信息安全

软件开发中的信息安全随着互联网技术的发展和普及,大量的软件应用涌现出来,而软件开发中的信息安全也日益引起人们的关注。
因为软件程序中的任何安全漏洞都可能被黑客或恶意攻击者利用,破坏用户数据、系统安全,甚至对企业和国家安全构成威胁。
因此,在软件开发的过程中,确保信息安全至关重要,需要采取多种措施,以做到信息安全和防范攻击。
一、信息安全的概念信息安全是指保护信息不受未经授权的访问、使用、泄露、破坏或篡改,确保信息的完整性、保密性、可靠性和可用性,使信息得到安全的存储、传输和处理。
互联网时代的信息安全已经成为一个国家和企业重要的战略资源,要保护好信息安全就需要从各个方面进行防范。
二、软件开发中的信息安全在软件开发中,信息安全的问题也非常重要。
由于软件开发涉及到用户、业务和数据等多个方面,所有组成部分都有可能存在安全隐患。
如果不加注意,就会给用户带来很大的损失,损害开发商的信誉和利益。
1、开发过程中的安全:软件开发中的安全问题不仅仅是程序的安全,还包括一系列的开发过程中所涉及的安全问题,包括需求分析、设计、编码、测试和部署等多个过程。
在开发过程中,为了确保信息安全,需要进行全面的安全评估和测试,消除安全漏洞,提高软件的安全性。
2、程序代码的安全:一个好的程序应该是易于使用、简单明了,同时也需要具备足够的安全性。
代码安全即意味着程序应该能够对恶意程序、安全漏洞、入侵、攻击进行攻击,同时还要能够有效地保护用户的隐私和数据闲实,防止被黑客攻击和窃取数据。
3、系统的安全:软件开发的安全性不仅仅在于代码的安全,也包括了整个系统的安保。
一个安全的系统应该有完善的授权、审核、追踪和保护功能,同时还应该拥有足够的监控力度,这可以使软件程序更好地保障用户的数据安全。
三、信息安全的保障措施在软件开发过程中,采取一些保障措施可以有效地保障信息安全,其中包括以下内容。
1、完善的安全策略:对于软件开发者来说,最关键的就是要设定正确的安全策略,包括对数据库管理、身份认证、密码安全等的安全策略,以满足用户的需求。
软件开发中的安全问题与防范措施

软件开发中的安全问题与防范措施在软件开发中,安全问题是一个非常重要的话题。
随着互联网的普及和网络攻击的增加,软件开发者需要更加关注安全问题,并采取一系列的防范措施。
本文将会探讨软件开发中的安全问题,并提出一些防范措施。
一、常见的安全问题1. 数据泄露数据泄露是软件开发中最常见的安全问题之一。
这种情况通常出现在软件中存储了敏感的用户信息或机密的商业数据,而攻击者可以通过不合法的手段获取这些数据。
数据泄露可能会带来财务损失、个人信息泄露等问题。
2. 拒绝服务攻击拒绝服务攻击是通过对某个服务器或网络资源不间断地发起请求,使得该资源无法正常工作的攻击行为。
这种攻击通常是出于对某个个人、组织或国家的报复行为,目的在于瘫痪其服务或使其无法正常工作。
3. 病毒或木马病毒和木马是两种最常见的软件安全问题。
病毒可以通过某个软件或文件进行传播,将自身的代码注入到系统中,从而造成数据损失或系统崩溃。
而木马通常是一种偷偷潜伏在系统中的程序,可以对系统进行远程控制或窃取用户的机密信息。
二、如何防范软件安全问题1. 加密数据加密是一种有效的防范数据泄露的手段。
通过对敏感数据进行加密,即使攻击者获取了这些数据,也无法解除其中的信息。
因此,在软件开发中应该使用强密码、数据加密和加密通信等手段来保护用户数据的安全。
2. 采用HTTPS采用HTTPS可以有效防范中间人攻击和窃听。
从用户端到服务器端的信息传递会通过安全的加密协议进行保护,防止用户数据在传输过程中被窃取或篡改。
因此,在设计软件架构时应该考虑采用HTTPS协议。
3. 使用漏洞扫描工具漏洞扫描工具可以检测软件系统中的安全漏洞,并提供出相应的修补方案。
因此,在软件开发过程中需要使用漏洞扫描工具,并及时修复安全漏洞,以提升软件系统的安全性。
4. 控制用户权限在软件开发中,应该根据用户的身份和权限,对系统中的数据和资源进行访问控制。
通过设置不同的权限级别,可以确保用户在访问系统时只能获取到其所需的信息,避免数据泄露和信息被篡改。
如何规避软件开发过程中的安全风险

如何规避软件开发过程中的安全风险在现代化的软件开发过程中,安全风险是一个不可避免的问题。
程序代码的漏洞以及未按照标准进行的开发过程都可能会为黑客留下后门,通过后门,黑客可以突破软件的安全防护系统,进而窃取敏感信息甚至攻击系统。
因此,如何规避软件开发过程中的安全风险就成了软件开发人员需要关注的重要问题。
1. 掌握安全开发基础知识了解软件开发中可能存在的安全漏洞和开发中的安全规范是预防安全问题的重要基础。
软件开发人员应该了解一些基础的网络安全知识,如SQL注入、跨站脚本攻击等,以及了解常用的安全工具和技术,如代码审计、安全漏洞扫描器等,从而能够警觉并及时发现和处理潜在的安全问题。
2. 设计安全的系统架构在软件设计和开发过程中,要充分考虑安全将会对系统架构和设计的需求。
尽量采用安全性更强的技术和协议,对数据进行加密处理,避免密码或敏感数据明文存储,采取强强度加密方式,使用安全合规的数据库和操作系统等最佳实践方案,以构建安全性更高的系统架构。
3. 实现完善的访问控制实现完善的访问控制是保证系统安全的重要一环。
系统应该明确自己的用户权限和角色,并严格限制不授权用户访问系统资源。
特别地,对于拥有系统最高权限的超级管理员账户,应该授权给有经批准的个人,采用多重认证机制实现双重保护,从而最大限度地降低安全风险。
4. 安全测试软件开发之后,进行软件漏洞扫描和安全测试也是非常相要的。
这将确保软件开发的安全审查过程和安全性最大化,一旦发现安全漏洞或高危漏洞,应该及时修改。
软件测试的过程中应着重于漏洞测试、攻击测试、功能测试、负载测试等。
对于所有漏洞进行清洗和修补,保证代码质量和安全性。
5. 及时升级修复漏洞软件的开发不是一个一劳永逸的过程,而是一个不断进行的迭代升级过程。
每次升级和修复时,都应该更新已知问题、验证补丁的功能和安装过程是否正确进行。
尤其是如此大型的应用程序,升级尤其令人头痛。
然而,软件漏洞问题需及时解决,只有经常修复和升级,才能保证软件的安全性。
软件开发中的安全问题介绍

软件开发中的安全问题介绍在当今数字化时代,软件已经成为人们生活和工作中不可或缺的一部分。
无论是互联网应用还是移动设备上的应用程序,都在日常中扮演着重要的角色。
但是,软件开发中的安全问题也因此变得十分突出,这些安全问题有时候可能会引起安全漏洞,对个人和机构造成损失。
软件开发安全问题涉及到许多方面,包括漏洞利用、网络攻击、数据泄露等。
针对这些问题,开发团队需要采取一系列措施来提高软件的安全性。
首先,在软件开发的过程中,团队需要认真评估设计阶段的风险。
这包括制定详细的需求和安全规划,在软件生命周期中进行威胁建模,并根据威胁建模进行安全测试。
对于软件的安全测试,主要包括黑盒测试和白盒测试两种模式,这两种测试模式可以有效地发现潜在的漏洞和安全问题。
其次,在编码过程中,开发人员需要遵循安全编码标准和最佳实践。
这包括使用安全的编程语言和框架,编写可维护性高的代码,以及遵循安全验证和授权规则等。
开发团队还需要使用可靠的开发工具来帮助提高软件的安全性,例如代码审查工具、静态分析器等。
另外,软件的安全性还需要与运营环境相匹配。
当软件部署在生产环境上时,开发团队需要采取额外的保护措施来保证软件的完整性和安全性。
这包括使用安全加密协议来保护数据传输、强化访问控制、监控系统日志以及积极响应安全事件等。
此外,安全性还需要持续地改进和保护。
开发团队需要定期对软件进行审核和安全测试,解决已知问题和疑虑,以保持软件的安全性和可靠性。
同时,开发团队还需要及时了解相关漏洞和安全趋势,以便采取适当的措施来保护软件免于受到威胁。
综合来说,软件开发中的安全问题是一项复杂而重要的议题。
可靠的软件开发是一项持续改进的过程,在软件设计、编码、部署和更新阶段采用正确的安全性实践和保护措施,可以最大程度地降低安全风险,保护用户数据和企业资源的安全,实现软件开发的全周期保护。
移动应用开发中的安全问题

移动应用开发中的安全问题随着智能手机和移动互联网的普及,移动应用已经成为人们日常生活中必不可少的一部分。
许多人喜欢使用移动应用来方便地完成各种任务,如购物、支付、社交等等。
然而,随着移动应用数量的不断增加,安全问题也日益严重。
本文将探讨移动应用开发中的安全问题,并提出一些解决方案。
1. 恶意软件恶意软件是指对用户造成安全威胁的软件。
在移动应用中,恶意软件通常是指采取一些不恰当的安全措施,例如窃取用户数据、盗取密码、在后台运行等等。
恶意软件经常隐藏在一些一般用户并不容易察觉的应用程序中。
如何避免恶意软件的侵害?首先,用户应该从可信赖的应用商店下载应用程序,同时不要随便下载不知名的应用程序。
其次,开发者和应用商店应该采取一定的审核机制,确保应用程序的安全性。
最后,在开发移动应用的时候应该使用尽可能多的安全措施,如使用加密算法来保护敏感数据,避免窃取用户密码等。
2. 捆绑式软件捆绑式软件是指在应用程序安装过程中,静默地安装其他软件。
这样做的目的通常是为了广告营销或非法盈利。
然而,捆绑软件可能会造成一些负面影响,如影响系统性能,降低用户的使用体验等。
如何避免捆绑式软件的侵害?首先,用户应该在安装软件之前认真阅读用户协议,并选择“自定义安装程序”,这样就能避免安装不需要的额外软件。
其次,开发者应该避免在应用程序中捆绑其他软件以增加盈利,这样不仅会影响用户体验,还可能破坏软件的可信性。
3. 数据泄露数据泄露是指未经授权地泄露用户敏感信息的现象。
在应用程序中,数据泄露通常由安全漏洞、恶意软件或不当的应用程序行为引起。
如何避免数据泄露的发生?首先,应用程序应该具备加密、安全验证等安全机制,以防止恶意用户以及黑客攻击。
其次,开发者和应用商店应该建立相应的安全机制,进行必要的证明和审核,保证应用程序安全可靠。
最后,应用程序应该对敏感数据进行保护,通过加密算法等措施,确保用户的个人信息不被泄露。
4. 付款安全付款安全是移动应用开发中的另一个重要问题。
安全技术在计算机软件开发中的应用

安全技术在计算机软件开发中的应用随着计算机技术的不断发展,软件漏洞也越来越多,这给计算机安全带来了巨大的挑战。
因此,在软件开发中加强安全技术的应用是非常重要的。
本文将介绍安全技术在计算机软件开发中的应用。
1. 安全设计安全设计是软件开发过程中的第一步,也是最关键的一步。
在软件设计之前,应该明确软件的安全要求和目标,并在设计过程中充分考虑安全因素。
通过对安全需求和威胁进行分析,确定软件所需的安全措施,如访问控制、身份认证、数据加密等。
只有在安全设计上下功夫,才能保证软件开发后的安全性。
2. 安全编码安全编码是指在软件开发过程中采取安全措施,避免编写漏洞代码。
通过编写安全的代码,可以减少软件中的漏洞风险。
在编写代码时,需要遵循安全编码规范,如输入验证、错误处理、异常处理等。
3. 安全测试安全测试是一种以审计和验证的方式来检测软件是否存在安全漏洞的方法。
通过安全测试可以发现软件的潜在漏洞并进行修复。
安全测试可以分为黑盒测试和白盒测试。
黑盒测试是指在不知道软件内部实现细节的情况下对软件进行测试;白盒测试是在了解软件内部实现细节的情况下对软件进行测试。
4. 安全部署安全部署是指将软件部署到生产环境中,确保软件在运行时能够保持安全。
在安全部署过程中,需要考虑软件的安全配置,如安装必要的安全补丁、关闭不必要的服务、设置安全策略等。
5. 安全维护安全维护是指在软件运行过程中,及时修复软件存在的安全漏洞和缺陷,保证软件的安全性。
安全维护包括定期检查和更新软件补丁,及时响应安全事件等。
总之,安全技术在计算机软件开发中的应用对于保障软件的安全至关重要。
安全技术需要贯穿于软件开发的整个过程,包括设计、编码、测试、部署和维护。
通过加强安全技术的应用,可以有效地减少软件漏洞,并提高软件的安全性。
安全环境下计算机软件的开发与应用分析

安全环境下计算机软件的开发与应用分析
随着互联网的高速发展和普及,计算机软件的开发与应用更加广泛。
保障计算机软件
的安全环境是非常必要的,下面我们可以从以下三个方面进行分析。
一、开发安全
计算机软件开发应该遵循软件工程的规范。
在设计阶段,需要充分考虑安全问题,应
该最大限度地降低软件漏洞的存在。
为了减少安全漏洞,可以采用代码审查、协作设计、
编码标准等措施。
同时,开发团队需要加强软件测试,包括对输入、输出和边界条件等
进行测试,以发现和修复潜在的漏洞。
安全教育和培训是提高团队安全素养的重要方法,有利于加强开发人员的安全注意力和问题意识。
二、运营安全
计算机软件上线后,需要进行安全测试,做到不断强化安全运营。
应该对软件进行监控,实时监视错误日志、访问日志等,对一些异常情况及时做出响应,做好监测、监控、
维护等工作。
同时,软件需要进行安全漏洞的修复和版本升级,为了避免软件过时而存
在的不安全点,应该及时升级补丁,流程与权限、敏感数据的访问也应该做到全面可控。
三、攻击与防护
为了保证计算机软件的安全,应该采用有效的防御措施来应对各种可能的攻击。
合理
的规划和设计软件架构、补丁管理、IP 黑白名单、访问控制等措施都能够有效地防御外
部攻击。
此外,应该做好数据加密、渗透检测、安全审计等方面的防护工作。
所有的使用者,包括内部和外部用户都应接受必要的安全培训和教育,加强安全意识,按照安全要求
行事。
总之,保持计算机软件的安全,需要在开发和运营过程中精心把握,加强管理,做到
人文与技术、预防与治理并重。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
不要以明文形式存储数据库连接字符串或密码等敏感信息,应该进行加密,并存储经过加密的字符串。
如果通过网络传输敏感数据,禁止明文传输,应对数据进行加密。同时确保通信通道的安全,通常的做法是使用SSL/TLS、HTTPS、SFTP 和 IPSec 等安全协议进行通信。
16
异常处理
不要向客户端泄漏应用程序内部信息:发生故障时,不要在出错消息中暴露应用系统内部的敏感信息。例如,不要暴露包括函数名以及调试信息(出问题的行数,堆栈信息等)。应向客户端返回一般性错误消息。
不在网络上以明文方式传输密码:以明文方式在网络上传输的密码容易被窃听,为了解决这一问题,应确保通信通道的安全,例如,使用 SSL 对数据流加密。
保护身份认证的凭据:身份认证的凭据(如 Cookie)被窃取意味着登录被窃取。可以通过加密和安全的通信通道来保护认证的凭据。此外,还应限制认证凭据的有效期,以减少攻击的威胁。
7
访问控制和授权
应用系统的认证、授权尽量使用统一的认证、授权平台来进行。如果因为某种原因需要建立应用系统自己的认证、授权体系,整个认证过程需要进行加密,密钥长度不能低于 128 位。
8
访问控制和授权
应用系统的设计应包含用户权限分配和管理功能:
系统读、写、执行权限设计
系统查看、配置、修改、删除、登录、运行等权限设计
6
应用系统上线投产的安全要求
规划应用系统上线所需要的资源需求和准备工作,包括但不限于以下内容:
应用系统上线对软件、硬件资源和网络的要求。
应用系统上线对相关部门、人员的要求。应明确所有参与人员的职责,要求签字确认。
应用系统上线的时间进度安排。
其它资源的详细清单。
应将应用系统的上线方案提交给相关部门主管,只有批准方可进行。
建议使用基于角色的授权策略分别为操作员、管理员授权。
针对进程帐号、服务帐号等系统内部帐号,其权限配置应遵循权限最小原则
15
配置管理
确保配置信息本身的安全:
基于文本的配置文件、注册表和数据库是存储应用程序配置信息的常用方法。应避免在应用程序的Web空间使用配置文件,以防止可能出现的因服务器漏洞而导致配置文件被下载或篡改。应避免以明文形式存储加密配置信息,如数据库连接字符串或认证凭据,应该通过加密确保这些信息的安全。同时必须限制对包含加密数据的注册表项、文件或表的访问权限。
数据处理过程应具备异常处理功能,在任一环节发现问题,均能及时回退,必要时可以人工处理。
13
数据输出验证
验证输出的数据是否准确、合理。
要保证所有的数据都被处理了。
数据输出验证过程应保留验证过程的相关信息(日志)。
14
配置管理
应用系统配置管理安全设计要求:
应用系统配置管理功能只能由经过授权的操作员和管理员进行,建议使用强身份认证手段,如使用双因素认证。避免使用远程配置管理。
帐号的命名规范:应用系统的帐号命名规则和结构要符合企业统一的帐号命名规范和结构定义。
5
身份识别和认证
应用系统的口令规则需要符合企业统一的账号口令管理规范的要求。
6
身份识别和认证
对密码本身的保护:
避免存储实际密码:验证密码可以通过存储密码的单向哈希值,然后使用用户所提交的密码重新计算哈希值进行比对来实现。
应根据数据的类型、数据的处理方式、数据的安全性要求、与其它接口有关的敏感等级、数据相关业务应用的重要性程度来进行数据处理过程的安全性设计。
应对原始数据需要进行检错和校验操作,保证原始数据的正确性和完整性。
数据在转换过程中,应采用通用的标准格式,应考虑相关的不同系统和不同应用的格式要求。
数据处理过程应保留处理数据的状态信息(日志)。
系统测试和验收测试通常需要尽可能接近实际运行数据的测试数据,应避免使用含有个人信息的业务数据库。如果要使用其中信息,必须在使用之前使其失去个性化。当把运行数据用于测试目的时,应采取措施保护运行数据。
在与其他系统的交互性测试中,应充分考虑对其他系统的影响,选择适当的时间、方法。
测试完成后上线前应进行安全核查,消除测试用的后门、用户名及口令等。
防止程序员非授权修改代码禁止在程序中添加隐藏“恶意”的代码,防止与应用系统相关的程序员对系统的非授权修改。
4
应用开发的代码安全要求
规范代码的格式:
规范变量、函数的命名
规范程序的书写格式,确保程序的易读性
5
应用系统的安全测试:
应用系统的安全性测试包括以下内容:
测试前应明确测试目的,帮助所有测试人员熟悉测试的目的和意图。
10
输入数据验证
采用输入复核或其他输入检查方式,例如边界检查、限制数据输入字
段的范围和类型等,检验是否有以下输入错误:
输入过长
输入数据字段中有非法字符
输入为空或者不完整
输入值超过上限或下限
11
输入数据验证
在服务器端进行验证:应使用服务器端代码执行其数据的输入验证。如果使用客户端验证方式,有可能发生攻击者绕过客户端验证或关闭客户端验证脚本进程的情况。
确保测试环境的安全。应将测试环境与开发环境、生产环境相隔离,避免测试工作对业务的影响。
应详细记录测试过程发生的各个事件,列出测试过程中发现的问题。这些信息包括:发现了什么,在哪里发现的,当时的环境,这些问题是否可重现。
应根据测试的过程和测试结果,提出被测试系统、测试过程等方面的改进说明。
应确保测试用例、测试内容和测试结果的保密性。
记录详细的错误信息:向错误事件日志发送详细的错误消息,同时确保没有记录密码或其他敏感数据。
开发阶段
规范
建议
1
应用开发环境的安全要求
开发环境应划定专门的安全区域,如非必需,禁止或限制与生产网和互联网的互联。
存储项目文档、代码的服务器必须有严格的访问控制管理、备份制度。
对项目文档和代码的访问应严格受控。
输入标准化:标准化是指将输入数据转化为标准形式的过程。在接受文件名输入、URL 或用户名输入时必须先进行标准化。
限制、拒绝和净化输入:输入验证的首选方法是从一开始就限制
允许输入的内容,并按照已知的有效类型、模式和范围验证数据。
清晰定义数据输入处理流程中涉及人员的责任。
12
数据处理控制
要有措施保证应用程序按照正确的运行次序执行,如果出错就中断执行,后续处理过程将暂停运行直到错误排除,防止在前一流程出错的基础上继续运行。
数据访问范围的权限设计
应用功能模块使用权限的设计
9
访问控制和授权
限制用户的权限:
限制用户对系统级资源的访问,包括文件、文件夹、注册表项、LDAP 对象、数据库对象、日志文件等;
应用系统使用的数据库帐号必须是普通权限帐号,只能访问允许的数据库;
应用系统启动进程的权限尽可能小;
合理设计用户权限的颗粒度,满足授权最小原则。
4
身份识别和认证
帐号的管理
帐号生命周期管理:帐号的生成、变更、挂起和删除等建议由集中的身份管理平台完成。如果在应用系统内部实现账号生命周期管理,要充分考虑各个阶段对安全的要求。
帐号存储模式:应用系统的帐号要求使用支持 LDAP 目录的存储方式。如果应用系统因为某种原因不能使用企业级 LDAP 目录存储帐号(或者企业级 LDAP 尚未建立),对于同一类型的应用,要尽量使用同一个 LDAP 目录存储帐号信息,这一目录要求定期与企业级LDAP 目录进行同步。
必须严格遵循 Fail-Safe 原则,即当发生问题时,必须能自动切换到最安全的保护模式。举例来说,当软件的登录验证机制不可正常运作时,软件必须自动拒绝所有登录请求,而不是接受所有登录请求。
禁止开发人员为普通的软件进程分配系统特权帐号软件(例如系统管理员、root 等)。
禁止接受不满足安全标准的登录密码。
文档应参照安全分类要求设定安全级别,读者范围,并有相应的授权机制,以控制对文档访问。
文档作为应用软件开发中的配置项,应遵循软件配置管理要求。
文档应有专用的服务器(或文件柜)进行保存和备份(复制),对于电子文档应有版本控制。
3
应用开发的代码安全要求
应对函数入口参数的合法性和准确性进行检查。
代码设计尽量简单清晰,如果设计过于复杂,就会给相应的安全设计带来很大的难度,而最终导致安全性的下降。
应明确测试使用的方式,主要的测试方式有功能测试、压力测试和渗透性测试。
应明确测试的安全要点、测试参与人员、测试流程,并编写测试计划。
应根据测试计划制定测试方案,明确测试的各项要求和测试用例。
测试环境的硬件、软件环境和基础架构应模拟真实环境。
测试数据尽量避免采用真实数据,如果必须使用,应限定测试的人员,并在测试完成后全部删除。
所有缺省安全设置必须能同时满足系统正常运行和系统安全两方面的要求。
在所有警告或提示对话窗口中所使用准确、明了的描述性语言,并提供有关帮助链接。
在接受用户输入时,必须有数据合法性检查,并严格规定输入数据的字符长度。
隐藏所有敏感的信息。
在输入密码等敏感信息时,使用星号来代替输入的字符。
在设计基于Web 的软件时,必须确保当用户注销会话进程后,包含敏感信息的页面不能通过使用浏览器的回退(Back)按钮来显示。
对项目文档和代码要采取版本管理和控制。
开发终端的安全要求至少要和办公用终端有同样的安全要求。
2
应用开发文档的安全要求
开发各阶段输出的文档应有相应的安全方面的内容。
需求说明书中应明确描述用户的安全需求。
设计中应有针对安全需求的设计,并需要经过评审。
在测试计划或者测试方案中应有安全性测试方案,并据此进行安全性测试,保留测试记录。