软件工程论文

您当前的位置:学术堂 > 计算机论文 > 软件工程论文 >

软件开发毕业论文(最新10篇)

来源:学术堂 作者:万老师
发布于:2020-03-26 共6322字

  软件开发是一项包括需求捕捉、需求分析、设计、实现和测试的系统工程,一般是用某种程序设计语言来实现的,本篇文章就向大家介绍几篇软件开发毕业论文的范文,让大家了解一下软件开发毕业论文的写作技巧,大家可以阅读以下范文作为一个参考。

软件开发毕业论文最新10篇之第一篇:应用软件开发安全编码研究

  摘要:绝大多数的软件漏洞来源于软件开发阶段,系统开发时期避免漏洞要比运维时期整改漏洞成本低很多。输入输出检验、身份认证、密码管理、错误处理、系统配置、文件管理等各个方面都涉及安全编码,对于每一个具体信息系统的开发,都会面临各种安全隐患和威胁,涉及的理论和技术范围较广,超出一般开发人员的知识储备。面对这种问题,通过对开发中的各个方面的安全隐患进行分析,归纳总结出每一类问题安全预防的有效方法,以方便开发人员采取具体措施,从而减少常见的软件漏洞,提升软件安全水平。

  关键词:信息系统; 密码; 漏洞; 安全;

  在软件开发过程中,由于部分开发者网络安全意识淡薄,缺乏安全编码技术,同时软件正在向大型化和复杂性发展[1],软件安全编码的检查工作日益困难,造成了代码安全性较差的结果,从而导致大量的系统漏洞[2],给企业带来巨大安全隐患,在系统开发阶段引入安全开发措施是减少系统漏洞,降低安全损失的重要手段。

软件开发

  1 输入验证

  1.1 注入攻击

  "存储程序"原理是计算机最核心的理论,这个理论要求在于指令和数据的分离,各种注入攻击最基本的原理正是通过将指令以数据的形式录入到系统中,再根据系统的验证不严格的漏洞在某种条件下执行,例如sql注入、xss攻击等攻击。所以在编写程序时要验证所有来自客户端的数据,对所有的数据源进行识别,数据的输入不仅仅来源于客户端的录入,也包括数据库、文件流等数据来源,例如,用户将注入到数据库中,如果这段代码只在数据库中存储着,并不会对程序造成破坏,但是一旦被读入到内存中就可能引起不可预知的后果,所以在读入数据库数据的时候也须对数据源进行验证。

  1.2 验证规则

  程序中会出现多处输入场景,应当为应用程序应提供一个集中的输入验证规则。验证规则包括数据类型、范围、长度、所有参数、URL、HTTP头信息(比如:cookie名字和数据值),尽可能采用"白名单"形式,验证所有的输入,如果潜在的危险字符(例如<>"'%()&+\\'\"等)必须被作为输入,确保对其有特殊控制。对于特殊字节,例如验证空字节(%00)、验证换行符(%0d,%0a,\r,\n)、验证路径替代字符"点-点-斜杠"(/或\)等,需要被单独验证。

  2 输出验证

  2.1 输出威胁

  "输入过滤,输出转义"是一个基本的安全规则。xss攻击很大程度需要借助于输出时攻击代码的有效执行,虽然输出攻击针对的往往是用户,威胁相对输入攻击会低一些,但一方面系统管理员也是用户之一,同时随着网络安全法等法律的严格实施,系统对其用户负有网络安全责任。

  2.2 规则验证

  为每一种输出编码方法采用一个标准的、已通过测试的规则,通过语义输出编码方式,对所有返回到客户端的来自应用程序信任边界之外的数据进行编码。针对SQL、XML和LDAP查询,语义净化所有不可信数据的输出,对于操作系统命令,净化所有不可信数据输出。

  3 身份验证和密码管理

  3.1 验证范围

  首先,需要确定软件的身份验证的范围,除了公开网页内容,对所有的网页和资源要求身份验证,任何没有经过身份验证的访问都会被重定向到身份认证页面,同时对于未成功的验证需要安全的处理。

  3.2 验证方式

  开发软件时应使用单独的身份验证模块,建立并使用标准的、已通过测试的身份验证服务,其中包括利用库文件请求外部身份验证服务,从被请求的资源中隔离开,并使用重定向或集中的身份验证控制。所有的管理和账户管理功能至少具有主要身份验证机制一样的安全性,所有的身份验证控制应当安全的处理未成功的身份验证。如果应用程序管理着凭证的存储,那么应当保证只保存通过使用强加密单向salted哈希算法得到的密码,并且只有应用程序具有对保存密码和密钥的表/文件的写权限,只有当所有的数据输入以后,才进行身份验证数据的验证。

  3.3 验证错误处理

  身份验证的失败提示信息应当避免过于明确,比如:可以使用"用户名和/或密码错误",而不要使用"用户名错误"或者"密码错误".错误提示信息在显示和源代码中应保持一致,为涉及敏感信息或功能的外部系统连接使用身份验证,当连续多次登录失败后(比如:通常情况下是5次),应强制锁定账户,账户锁定的时间必须足够长,以阻止暴力攻击猜测登录信息。

  3.4 密码规则

  对于最常见的用户名密码登录方式,应当通过政策或规则加强密码复杂度的要求(比如:要求使用字母、数字和/或特殊符号,必须8位以上,定期修改密码等),防止暴力破解。密码传输过程中确保其安全性,输入的密码应当在用户的屏幕上模糊显示(比如:在Web表单中使用"password"输入类型),密码重设问题应当尽可能随机提问,如果使用基于邮件的重置,只将发送临时链接或密码,临时密码和链接有一个短暂的有效期,再次使用临时密码时,强制修改临时密码。关键系统可能会要求更频繁的更改,为密码填写框禁用"记住密码"功能。

  4 会话管理

  4.1 主要注意事项

  软件和外部交互的基本方式是建立会话,会话逻辑的漏洞是攻击者经常利用的途径,开发者在开发会话管理模块时,为避免产生逻辑漏洞需要使用服务器或者框架的会话管理控制。注销功能应当完全终止相关的会话或连接,注销功能应当可用于所有受身份验证保护的网页,禁止连续的登录并强制执行周期性的会话终止。如果在登录以前一个会话就建立,在成功登录以后,关闭该会话并创建一个新的会话,在重新身份验证过程中建立新的会话标识符,不允许同一用户ID并发登录,会话标识符应当只出现在HTTP cookie头信息中,例如,不要将会话标识符以GET参数进行传递。

  4.2 HTTPS问题

  在身份验证的时候,如果连接从HTTP变为HTTPS,则生成一个新的会话标识符,在应用程序中,推荐持续使用HTTPS,为服务器端的操作执行标准的会话管理,比如,通过在每个会话中使用强随机令牌或参数来管理账户,该方法可以用来防止跨站点请求伪造攻击,通过在每个请求或会话中使用强随机令牌或参数,为关键的操作提供标准的会话管理。为在TLS连接上传输的cookie设置"安全"属性,将cookie设置为HttpOnly属性,除非在应用程序中明确要求了客户端脚本程序读取或者设置cookie的值。

  5 文件管理

  上传某些可执行文件,并在上传过程中绕过信息系统的检查,是一种常见攻击手段,文件可能在系统执行过程中的某个环节被执行,从而对系统破坏或者数据被窃取,所以需要对外部上传的文件进行严格管理。在允许上传一个文档以前进行身份验证,只允许上传满足业务需要的相关文档类型,通过检查文件报头信息,验证上传文档是否是所期待的类型,防止或限制上传任意可能被Web服务器解析的文件,对用户上传的文件扫描进行病毒和恶意软件。不要把上传文件保存在与应用程序相同的Web环境中,文件应当保存在内容服务器或者数据库中,关闭在文件上传目录的运行权限,不要将绝对文件路径传递给客户,应使用预先设置路径列表中的匹配索引值。当引用已有文件时,使用一个白名单记录允许的文件名和类型,验证传递的参数值,如果与预期的值不匹配,则拒绝使用,或者使用默认的硬编码文件值代替。不要将用户提交的数据传递到动态重定向中,如果必须允许使用,那么重定向应当只接受通过验证的相对路径URL.

  6 内存管理

  内存堆栈溢出是攻击者常用的取得系统更高权限的常用手段[3],在编写程序过程中一定要防止程序的内存溢出,确认缓存空间的大小是否和指定的大小一样。当使用允许多字节拷贝的函数时,比如strncpy(),如果目的缓存容量和源缓存容量相等时,需要留意字符串没有NULL终止,如果在循环中调用函数时,检查缓存大小,以确保不会出现超出分配空间大小的危险,在将输入字符串传递给拷贝和连接函数前,将所有输入的字符串缩短到合理的长度。关闭资源时要特别注意,不要依赖垃圾回收机制(比如:连接对象、文档处理等),在可能的情况下,使用不可执行的堆栈。避免使用已知有漏洞的函数(比如:printf,strcat,strcpy,等),当方法结束时和在所有的退出节点时,正确地清空所分配的内存。

  7 结束语

  安全编码涉及信息系统开发配置的各个方面,其基本原则包括最小化、可信检查、以及使用已知安全组件等原则。最小化原则包括用户权限的授予、设置IP地址和文件类型等限制条件、对用户提供尽可能少的系统信息等。可信检查包括对外部数据、文件的输入、存储、执行、输出等各个环节的安全检查,而且上文中提到的任何安全性操作都需要在可信系统上进行,软件运行的服务器可以作为可信系统,而用户使用的浏览器不能作为可信系统。使用已知安全组件原则要求开放者在密码算法、安全协议、会话管理的程序开放过程中要尽可能使用相关框架、公开软件包或者操作系统自带的组件,因为开发者不是密码和协议设计的专家,利用公开算法或者软件库可以避免出现已知漏洞。在开发阶段还会涉及例如数据库安全配置、加密算法的选择和实施以及通信安全等领域,本文中没有一一列举。安全编码的各种措施对于不同的编程语言来说,有不同的实现方式,作为企业信息化管理部门,可以针对主流编程语言形成安全开发标准,指导企业信息系统的安全开发,从而缓解应用层漏洞层出不穷的问题。

  参考文献
  [1] 吴世忠,李斌,等。信息安全技术[D].北京:机械工业出版社,2017.
  [2]陈斯迅。浅谈企业信息安全漏洞管理[J].信息系统工程,2018.
  [3]John viega,Gary Mc Graw.安全软件开发之道[D].殷丽华,张冬梅等译。北京:机械工业出版社,2014.

  文献来源:陈斯迅。应用软件开发安全编码研究[J].网络安全技术与应用,2020(03):55-56.

软件开发毕业论文最新10篇之第二篇:计算机软件开发与数据库管理探讨

  摘要:信息技术已经广泛应用在各领域中,成为社会和经济发展重要的工具。计算机软件技术是信息技术重要的组成部分,加大对计算机软件开发,以及对软件中的数据库实施严格的管控措施,既能避免计算机软件的安全隐患,提升数据库的存储能力,还能提升计算机的运行效率,为用户提供便捷的操作服务。本文围绕计算机软件开发与数据库管理展开讨论,仅供参考。

  关键词:计算机软件; 开发; 设计; 应用; 数据库管理;

  信息技术已经成为人们日常生活和工作中广泛应用的技术,并且在各领域发挥着不可替代的作用,尤其是人们应用十分广泛的交流软件和移动支付设备,都是以信息技术为核心研发制造的。为满足日益变化的软件类型,增强数据库的管理性能,有助于提升计算机软件运行的稳定能力。

软件开发

  1 计算机软件的开发与设计

  1.1 开发方法

  目前,计算机软件开发方法主要有三种:1)原型化方法。采用原型化方法既能满足软件在实际应用中的功能需求,软件借助特定的算法,快速适应计算机的输入和输出状态。与传统的生命周期方法相比,原型化方法需要更加严谨的认定过程,在严格定义状态下,软件开发人员会根据用户的使用需求,通过特定的算法设计出功能完善的软件。2)软件生命周期法。设计人员使用该方法时,以时间为衡量标准,重视软件的开发过程、定义过程以及维护过程等,在每个过程中都会对存在的问题设定有效的预防和解决措施。通常情况下软件设计过程需要经历六个周期,六个月为一个周期。3)自动形式的系统开发法。该方法是在第四代技术的基础上,利用系统内设定的编码进行软件设计。工作人员在软件开发过程中,应保证设计的内容与目标符合使用要求,同时配置完善的说明内容,便于用户正确的操作[1].

  1.2 设计方法

  软件设计方法中,需要对软件系统的组成形式、处理过程以及功能等,按照编写程序和系统测试标准开展设计工作。编写程序是软件设计的基础,设计人员在编写程序时,都会按照规范的流程进行,根据程序编写时间要求,编码程序会占据程序编写的一半时间,为提升程序的编写效率,应将编码程序编写时间控制在三分之一以内。设计人员在编写程序时,应有效协调不同编码间的编写进度,避免编码由于编写时间存在bug,影响到编码的编写过程。进入到系统测试环节,通常是在完成编码程序编写后进行的。设计人员应对编写程序进行全面的测试,测试内容包括系统的运行功能以及使用功能等,随后交由用户亲自使用,根据用户的使用需求,设计人员应及时进行调整,以便满足用户的使用需求。此外,设计人员应密切关注软件的运行状态,若软件存在问题,需要及时进行升级或修补漏洞[2].

  2 数据库管理

  2.1 数据库管理内容

  数据库管理工作主要包括四项内容:1)保证不同数据和程序都能展现出独立运行的能力。在数据模型之间,每种数据本身的功能应成为数据库管理模式重要的组成部分。2)若在企业等机构建立数据库时,采用的管理模式应以数据为核心,围绕核心组织数据形成统一的整体,进而增强数据库系统的综合性功能,以便数据库系统加强对数据的控制。3)应为用户提供便利的接口服务,不同数据需要流经不同的接口,成为用户使用计算机软件以及满足用户需求重要的载体。4)不同应用状态下的数据管理模式,应由数据库提供备份空间,防止数据出现丢失等情况,保证数据的完整性。

  2.2 数据库中常见问题

  数据库常见的问题体现在三个方面:1)数据库在运行或者实施管理措施时,都是由用户下达的运行指令,若用户发出错误的指令,或者数据库出现问题未能及时处理,都会使数据库出现不稳定的运行问题。2)在数据库系统中,若数据库运行状态稳定,但是受到外部因素的影响,或者存在安全隐患,就会引发数据库管理出现问题。一旦用户未能及时处理数据库存在的管理问题,会增大数据库的管理难度。3)若系统运行出现问题,会提升数据库流失数据的概率,同时极易受到病毒的侵蚀,病毒在计算机软件内扩散的危险内容,会破坏数据库的管理功能。

  2.3 数据库管理的措施

  用户为保护数据库中的信息,应通过加密的方法,借助密码和用户名的方式,阻止重要信息的泄露,防止不法分子盗取信息,威胁到用户生产安全的同时,还会使用户遭受到巨大的经济损失,所以采用加密的管理措施,既能保证数据的完整性,还能避免出现数据流失[3,4].用户应为数据库管理配置有效的防范体系,通常通过备份的方式,即便数据丢失,用户使用备份即可恢复正常的工作。

  3 结语

  综上所述,计算机技术已经成为人们日常生活和工作经常使用的技术之一,提升计算机软件的开发技术,既能为用户提供优质的网络服务,又能满足用户对计算机各种的使用需求。在面对数据库系统出现的问题时,应实施有效的管理措施,在施加加密措施的同时,还应提升用户保护数据库的管理和保护意识,以便数据库内的数据保持在完整和统一的状态,避免数据流失影响到用户的正常生活和工作,防止用户遭受到经济财产的损失。

  参考文献
  [1] 汪跃飞。计算机软件开发与数据库管理分析[J].信息与电脑(理论版),2019(2):69-70+75.
  [2] 陈映村,程鹏飞。计算机软件开发与数据库管理中的问题与应对策略[J].计算机产品与流通,2019(1):34.
  [3] 张建国,吴新佳。机电一体化技术的应用及发展趋势探究[J].南方农机,2018,49(18):117-118.
  [4] 胡其荣。计算机软件开发技术的现状及应用[J].电子技术与软件工程,2019(12):44.

  文献来源:彭登云。计算机软件开发与数据库管理探讨[J].南方农机,2020,51(05):220.

软件开发毕业论文(推荐范文10篇)
相关内容推荐
相关标签:
返回:软件工程论文