摘要:
本人所在工作单位承担了"城乡智慧建设工程综合管理平台"项目的开发工作。我有幸参与了本项目,并担任架构师一职,全面负责需求分析和系统设计等工作。本项目主要包括公众访问平台,数据服务中心,企业排名评价等功能模块。本文主要讨论系统安全和保密技术在项目中的实施效果。相关技术包括通过数据持久化技术,实现表示层和真实数据的隔离,保障数据的访问安全;通过o动态验证技术防止网络爬虫攻击,同时对验证码进行h后台自动更新,保障系统可用性;通过生物识别技术对用户的人脸进行实人认证,保障系统的访问安全。最后,文章指出了我在项目软件设计中的不足之处,采取了何种补救措施,以及我对项目总体设计工作的心得体会。
正文:
2022年11月,城乡智慧建设工程综合管理平台项目开发工作正式启动。项目的建设目标主要有三个方面:一是实现建设工程从招标,合同备案,施工许可,到建设施工,竣工备案全生命周期的监督;健全完善评价制度,奖励制度,惩罚制度,不断提高工程建设质量安全管理水平。二是实现全市施工企业通常行为,在建工程现场行为和从业人员的动态评价,建立了建筑施工企业诚信综合评价体系。每日动态更新评价结果,并将评价结果运用于找投币哦活动,促进了建筑市场的健康发展。三是建立我市建筑行业数据共享平台。向相关业务部门提供包括企业基本信息库,工程基本信息库,从业人员基本信息库,诚信评价信息库在内的数据共享服务。实现面向全市的建筑业四库信息的统一应用与发布;同时实现定时向住建部推送我市建筑业的相关数据。
接到项目研发任务后,我所在公司高度重视,第一时间调派人手,组织精干力量进行系统研发,本人有幸在该项目中担任系统架构师角色,全程参与了该系统的需求分析,架构设计,系统开发等项目建设工作。
在项目的设计过程中,我意识到本项目较为复杂,业务子系统和功能模块很多 ,面临严峻的系统安全性和保密性要求的压力,需在系统建设的同时保保证系统具有良好的安全性和保密性。
我对项目进行了整体的分析与评价,结合项目业主的经验,分析整理出本项目所面临的三项系统安全性风险。
(1)对外展示的公众平台存在安全隐患。有不法分子为了获得平台数据,运用网络爬虫技术进行暴力抓取导致服务器瘫痪,影响系统的可用性。
(2)本项目功能庞大,参与开发的人员众多,水平参差不齐,在编码过程中很难杜绝例如SQl注入漏洞的发生,影响数据安全。
(3)建造师注册管理等APP采用传统的账号密码的方式进行登录,很难保证系统的访问安全。
为了解决这些问题,我分别采用了动态 验证码技术,数据持久层技术,生物识名认证技术。下面我将详细叙述我的具体实现方法和实施效果。
一.应用动态验证码技术保证系统可用性
项目面向公众的访问平台,主要面向公众展示企业基本信息,项目基本信息,从业人员基本信息,诚信评价信息四个大类,每个大类下面又划分了若干子类。每类信息均以列表形式进行展示,用户点击列表再展示信息详细内容。
由于建筑行业信息的特殊性,时常有不法分子通过网络爬虫技术手机企业资源,施工许可,项目经理等数据,严重时甚至造成服务器不勘重负而无法访问。为了保障信息安全,我采用了数字验证码,文字验证码,图形验证码进行数据访问验证。具体设计方式是先建立IValidCODE接口类,不同验证码均需要明确是西安IVALIDCODE定义的验证码调用方法,验证码的验证方法。调用时将具体的验证码作为参数传递给平台调用程序,实现验证码的展示和验证。通过这种设计方法,能够很好的实现算法的灵活替换。我们通过每月定时对验证码的长度,我呢子,图形进行简单替换,杜绝了网络爬虫攻击的再次发生。
二.应用数据持久层技术保障数据访问安全
我对项目的数据类型进行了详细的调研和分析,将数据类型分为企业基本信息,项目基本信息,从业人员基本信息,诚信评价信息四个大类,每个大类又划分了若干子类。我结合项目实际应用提供了数据访问方式。针对单个数据的怎删改查操作,通过Hibernet技术建立实体关系模型,将数据表映射为实体关系查询对象,与普通的实体对象查询方式一致。为此我们组建了经验丰富的数据小组,专门负责针对实体类的更新与维护,且复杂的SQL查询语句只能与小组进行编写和维护。数据管理小组还负责全面项目组的数据访问编码培训公众,指导开发人员有效的使用实体类查询方法获的想要的结果,大大的提高了开发工作的效率。通过数据持节化设计很好的实现了用户请求和真实数据的隔离,保障了数据访问安全。同时,我们在数据访问层对数据查询统优化SQL语句和数据缓存技术很难好的保障了系统的运行性能,取得了很好的应用效果。
三.应用生物识别技术保障APP系统访问安全
当前软件行业成熟的生物识别技术总体分为两类:一类是指纹识别;另一类是人脸识别;由于指纹识别模块在当今智能收集的设计被逐步淘汰的情况,苹果等厂家推出的新手机不再支持指纹识别的功能呢,所以指纹识别不在考虑范围之内。
针对人脸识别,有两种实现方式:一种是人脸照片与公安部人脸数据库进行对比,这种方式成本较高,一次是识别的费用接近1元钱;另一种是人脸照片与另一张照片进行对比,这种方式成本低,而且不需要用到第三方验证平台支持。最终经过权衡,我采用了人脸是照片与人员数据库原先保存的登记照片进行对比设计方式。后来经过多次优化,人脸识别率达到了百分之九十以上。为了保证用户登录更加可靠,我还采用了手机三要素的认证方式进行身份认证。具体方法是通过第三方服务器验证接口,验证姓名,身份证号码,手机号码这三要素是否属于同一个人,认证成功后该用户就可以通过短信验证码的方式登录系统。通过这种设计,很好的杜绝了冒名顶替办理二级建造师相关业务的情况,保证了系统的访问安全。
2023年10月,项目正式上线并最终通过了用户的验收,在这之后系统运行稳定,良好的支撑了我市建筑行业管理的日常业务工作,获得额业主各业务部门的一致好评。但在系统运行过程中,随着业务数据的不断增长,出现了部分查询效率降低的问题。针对这一问题,我在不对系统数据结构进行大的修改的前提下,对这部分业务数据表进行水平切割,将数据按照进行分表存储,同时优化视图减少每次查询的数据范围,提升了查询速度。虽然这一问题得到了已圆满解决,但是也暴露出我在需求分析过程中的不足,对我在将来的工作中起到了良好的借鉴作用。
通过这个项目,本人在项目的需求分析,系统架构,安全性设计等方面都积累了很多宝贵经验,也让我从一名软件架构设计师新手,逐步成长为一名合格的软件架构设计师。我带领的项目组被评选为优秀开发团队,我也获得了优秀架构师的称号。在以后的项目架构工作,我会通过不断深入而全面地学习,提高自身地知识和理论水平,努力为我的家乡,国家信息化建设贡献一份自己的力量。