一、选题背景和目的
根据《2022年国民抑郁蓝皮书》显示,新冠疫情后,全球精神障碍疾病负担更加沉重,重度抑郁症和焦虑症的病例分别增加了28%和26%,抑郁症患者激增5300万,增幅高达27.6%。疫情的压力,给抑郁症的诊断及治疗带来了更大的挑战。而且中,在校学生占了50%,同时,女性抑郁患病率68.81%是男性抑郁患病率31.19%的两倍。本系统就解决了学生或者女性患者不便去线下接受心理咨询的问题。并且,国家互联网应急中心发布的《2019年上半年我国互联网网络安全态势》显示,2019年上半年,我国互联网网络安全状况具有四大特点:个人信息和重要数据泄露风险严峻;多个高危漏洞曝出给我国网络安全造成严重安全隐患;针对我国重要网站的DOS攻击事件高发;利用钓鱼邮件发起有针对性的攻击频发。本课题就是基于防SQL注入及SSM的心理咨询预约管理系统设计,能有效的防止用户私人数据泄露。
其实,人们心理健康是社会发展不可忽略的问题传统的心理咨询室局限于地点、时间,甚至天气影响,而且面对面的交流,有人羞于健康问题,不敢去咨询,这样也会耽误人们心理的健康发展。以往开办心理咨询室等一直依靠着人工管理,不能做到信息快速同步、节省时间。计算机应用对于心理健康管理系统,有人工模式无法比拟的优点,快速定位、强大存储、安全保密、维护成本低、使用期限长等。心理咨询师能在第一时间捕获患者心理健康咨询,去解析问题,及时梳导帮助排除困难困惑,不受时间、区域、地点等影响。这样患者也能选择隐瞒自己身份,放开心扉去交流,更好的认识自我,健康成长。
二、文献综述
SQL注入是比较常见的网络攻击方式之一,它不是利用操作系统的BUG来实现攻击,而是针对程序员编程时的疏忽,就是通过把SQL命令[1]插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网站泄露VIP会员密码大多就是通过WEB表单递交查询字符暴出的,这类表单特别容易受到SQL注入式攻击。当应用程序使用输入内容来构造动态SQL语句以访问数据库时,会发生SQL注入攻击。
SQL注入攻击漏洞之所以产生,究其根本原因就是没有对用户输入的数据进行
严格的过滤和验证。基于SQL注入最早是出现在国外的,国外学者的SQL注入攻击研究一直处在前沿,其理论和技术研究都非常深入[2]。目前,国外对于SQL注入攻击的主要研究有:基于动态预处理语句,这是一种从源代码中对SQL注入进行防御的方法;采用签名机制;编码防范;静态分析和动态检测相结合的分析;入侵检测系统;动态分析树等。国外的一些先进理论和成熟技术能够为我们的深入研究指明方向。而国内的研究方向主要包括以下几个方面:基于SQL[3]注入攻击检测、防御、备案的防范模型;组装SQL语句语法预分析的方法;编写代码时对用户输入数据进行严格的检查;在Web服务器端进行设置进而屏蔽错误信息[4];对传输的数据进行加密处理[5]。
本系统采用SSM框架进行开发[6],虽然目前springboot越来越广泛地使用[7],但是springboot开箱即用的简单背后隐藏了巨大的学习曲线,入门简单,但是如果没有完整学习spring体系,遇到问题容易懵逼,没有一定校验,根本不知道springboot自动做了什么封装代码。而与之相比,SSM框架[8]维护成本低,耦合性低;有利于开发中的分工,提高开发效率;组件重用,有利于代码复用,重用性高等优点明显优于springboot框架。
本系统的防止SQL注入[9]攻击功能就是采用mybatis框架的方法,其底层逻辑就是在框架底层,是JDBC中的PreparedStatement类在起作用,PreparedStatement是我们很熟悉的Statement的子类,它的对象包含了编译好的SQL语句。这种“准备好”的方式不仅能提高安全性,而且在多次执行同一个SQL时,能够提高效率。原因是SQL已编译好,再次执行时无需再编译。
一个完整的系统离不开数据库的支持,大量的数据需要数据库的存储。目前的主流数据库有MySQL、SQL Server[10]、Oracle等。MySQL数据库相比其他数据库的有点在于其低成本、跨平台、高性能等特点,因此这里选择的数据库是阿里云的RDS数据库服务存储数据,该数据库采用mysql内核配置在云端,不用在本地进行配置,只要知道账号和密码就可以在任意开发环境中使用。
数据存取操作这一块该系统摒弃了创痛JDBC的操作方式,而选用了在分层情况下解决数据的持久化问题的mybatis框架进行开发。mybaits作为基于Java的持久层框架。其使用简单的 XML或注解用于配置和原始映射,将接口和 Java 的POJOs(Plain Old Java Objects,普通的 Java对象)映射成数据库中的记录。mybatis解决了JDBC的相关问题:SQL语句[11]在代码中硬编码,造成代码不易维护,实际应用 SQL 变化的可能较大, SQL变动需要改变 java代码的情况;对结果集解析存在硬编码(查询列名), SQL变化导致解析代码变化,系统不易维护的情况。
功能越强大的系统涉及到的操作逻辑可能就更为复杂,要让系统拥有一个好的使用体验,那么就离不开前端技术支持[12]。本系统使用的vue框架来进行前端的相关开发,vue是一套用于构建用户界面的渐进式JavaScript框架[13]。与其它大型框架不同的是,Vue 被设计为可以自底向上逐层应用。Vue 的核心库只关注视图层,方便与第三方库或既有项目整合;Vue.js 可以进行组件化开发,使代码编写量大大减少,读者更加易于理解;Vue.js 最突出的优势在于可以对数据进行双向绑定。同时,本系统基于B/S 框架[14],B/S 模式最大的优点就是:部署和维护方便,易于扩展。 B/S 结构系统的产生为系统面对无限未知用户提供了可能。 当然,与 C/S 结构相比,B/S 结构也存在着系统运行速度较慢[15],访问系统的用户不可控的弱点[16]。
综上所述,通过查阅相关文献,对将要运用来实现风险预警系统的开发语言、技术、工具和算法有了深刻的理解,并且在接下来的实际开发中,实际运用这些学到的技术、方法来实现本课题的系统开发。
三、参考文献
[1]Akalanka Karunarathne Mudiyanselage and Lei Pan. Security test MOODLE: a penetration testing case study[J]. International Journal of Computers and Applications, 2020, 42(4) : 372-382.
[2]Mamoona Humayun et al. Cyber Security Threats and Vulnerabilities: A Systematic Mapping Study[J]. Arabian Journal for Science and Engineering, 2020, 45(3) : 3171-3189.
[3]Miao Yu et al. A Survey of Security Vulnerability Analysis, Discovery, Detection, and Mitigation on IoT Devices[J]. Future Internet, 2020, 12(2) : 27-27.
[4]国家信息安全漏洞通报[J].中国信息安全,2020(02):89-94.
[5]邓慧萍.计算机网络安全漏洞及防范措施分析[J].科技创新与应用,2021,11(25):99-101.
[6]苗青林,张晓丰,刘显光.基于JavaWeb的交通数据管理信息系统的设计与实现[J].信息系统工程,2021(09):44-46.
[7]王晨昊,黄建.构筑漏洞情报机制 推进漏洞全生命周期管理[J].中国金融电脑,2020(09):76-79.
[8]曹华山.SSM框架在Web应用开发中的设计与实现[J].无线互联科技,2021,18(11):108-109.
[9]基于Web应用安全的SQL注入漏洞与防御[J].李玲,任佳宁,韩冰倩,朱萍.电脑编程技巧与维护.2022(01):50-51.
[10]田玉倩,张文华.SQL Server 2008数据库完整性的应用探索[J].中外企业家,2020(14):135.
[11]SQL注入攻击检测与防御技术研究[J].杜建新.中国新技术新产品. 2021(09):27.
[12]付勋.HTML5在Web界面设计中的应用[J].中国新通信,2021,23(13):104-105.
[13]刘震林,喻春梅.基于MVC模式的JAVA Web开发与实践应用研究[J].网络安全技术与应用,2021(01):57-58.
[14]基于B/S系统的SQL注入防御技术研究[J].吴涛,张俊.电脑知识与技术. 2020(02):80-81.
[15]李勇.移动互联网信息安全威胁与漏洞分析[J].通信技术,2014,47(04):439-444.
[16]Achary R. Cryptography and Network Security:An Introduction[M]. Mercury Learning and Information, 2021
|