小區和堵卡點過往登記系統建設方案
一(yi)、項目建設(she)
目(mu)標:小區和(he)堵卡點過(guo)往登記系統(tong)
二、建設背景及面臨問題
2020年(nian)初,一(yi)種不亞于非典的(de)新型冠狀病毒(du)爆(bao)發(fa)于湖(hu)北武(wu)漢,并迅(xun)速蔓延全國甚至我(wo)國周(zhou)邊地區,截止目前國內確(que)診(zhen)病例已超過14000例,疑似病例近20000例,死亡人數超過300人。
為(wei)積極(ji)響(xiang)應國(guo)家號召,應對和控(kong)制(zhi)病毒的蔓延和擴散,各地紛紛采取相(xiang)應的措施(shi),比(bi)如通過媒體大量宣(xuan)傳(chuan):盡量減少(shao)外出活動,避免(mian)去(qu)疾病正在流(liu)行的地區,減少(shao)走親(qin)訪友(you)和聚餐,減少(shao)到人員(yuan)密(mi)集(ji)的公共場所活動。且各單位均(jun)延長了假期(qi)。
由此出(chu)現了目前民眾大都(dou)在家的(de)情況,全國各地(di)宅小區(qu)紛紛開始加強人員安全防護(hu)措(cuo)施(shi),包括(kuo)進(jin)出入信息登記等(deng),在這過程當中同時面(mian)臨(lin)一系列問(wen)題:
1.人員進出都要進行信(xin)(xin)息登(deng)(deng)記(ji),登(deng)(deng)記(ji)信(xin)(xin)息在不同(tong)小區(qu)需要重復登(deng)(deng)記(ji)或(huo)同(tong)一小區(qu)多(duo)次登(deng)(deng)記(ji)
2.登記(ji)人員(yuan)與(yu)工作人員(yuan)近距離接觸形成風險
3.登(deng)記人(ren)員信息隨意(yi)填(tian)寫,變成了形式
為了解決以上相關(guan)的一系(xi)列問題(ti),現建立(li)一套專有系統(tong)解決方案,通過系統(tong)進行登記,同(tong)時可以形成全區(qu)的(de)大(da)數據(ju)對異常人員進行(xing)分析,對社區疫(yi)情工作(zuo)進行(xing)監控(kong),人員登記簽到形(xing)成活(huo)動軌跡,可以實(shi)時(shi)掌握(wo)人員位(wei)置,對關鍵人員進行(xing)重點防控(kong)。
本系統基于微信(xin)小程序進行功能開發,微信小程序,簡稱“小程序”,是一種不需要下載安裝即可使用的應用,它實現了應用"觸手可及"的夢想,用戶掃一掃或搜一下即可打開應用,無需下載,使得效率大大提升。
三、系統主要功能
1.信(xin)息登(deng)記:外來人(ren)(ren)員進(jin)入(ru)小(xiao)區(qu)未在小(xiao)程序上登記(ji),掃碼后由進(jin)入(ru)人(ren)(ren)員填寫登記(ji)信(xin)(xin)息,登記(ji)信(xin)(xin)息包(bao)括姓名(ming)、手(shou)機號(hao)、小(xiao)區(qu)名(ming)稱、車(che)牌號(hao)。手(shou)機號(hao)唯(wei)一,小(xiao)區(qu)名(ming)稱唯(wei)一且(qie)必須(xu)選(xuan)擇。填寫后進(jin)行手(shou)機校驗(yan),確定本手(shou)機號(hao)為本人(ren)(ren)所(suo)有。各區(qu)域,小(xiao)區(qu)管理人(ren)(ren)員將所(suo)負責的區(qu)域、小(xiao)區(qu)人(ren)(ren)員通過錄入(ru)系統,形成區(qu)域人(ren)(ren)員基礎(chu)數據庫,實時更(geng)新人(ren)(ren)員信(xin)(xin)息,活動軌(gui)跡,將管理區(qu)域內的人(ren)(ren)員進(jin)行全方(fang)位管理。
2.掃(sao)碼進入:外來人(ren)(ren)(ren)員(yuan)或(huo)本小區人(ren)(ren)(ren)員(yuan)登(deng)記后,進入時掃碼(ma)(ma)二維(wei)碼(ma)(ma)或(huo)者有(you)工作(zuo)人(ren)(ren)(ren)員(yuan)值班人(ren)(ren)(ren)員(yuan)掃碼(ma)(ma)二維(wei)碼(ma)(ma),掃碼(ma)(ma)后登(deng)記人(ren)(ren)(ren)員(yuan)的信(xin)息在工作(zuo)人(ren)(ren)(ren)員(yuan)手機上即(ji)刻顯示,工作(zuo)人(ren)(ren)(ren)員(yuan)進行確認核對。
3.智能記錄:登記(ji)(ji)時自動(dong)記(ji)(ji)錄登記(ji)(ji)時間(jian)和定位(wei)登記(ji)(ji)位(wei)置,可(ke)按(an)日期查(cha)詢某人的任何時間(jian)點所在(zai)位(wei)置,可(ke)形成某個人行走記(ji)(ji)錄。可(ke)在(zai)進入記(ji)(ji)錄上附加體溫(wen)檢測(ce)記(ji)(ji)錄。可(ke)以(yi)統計出(chu)哪(na)些(xie)人在(zai)家,哪(na)些(xie)人有外(wai)(wai)出(chu)經(jing)歷(li),哪(na)些(xie)人外(wai)(wai)出(chu)未歸(gui)或外(wai)(wai)出(chu)去(qu)了哪(na)里等信(xin)息。
4.統計分析:同一小區人(ren)員(yuan)可以進行比(bi)對(dui),不(bu)同小區同一人(ren)員(yuan)進行比(bi)對(dui),同一時(shi)間不(bu)同小區進行比(bi)對(dui)。對(dui)應人(ren)員(yuan)流(liu)動(dong)大的小區自動(dong)提示。
5.統一管理:采(cai)用云(yun)模式部署,全旗(qi)統(tong)一(yi)(yi)管理,可(ke)以全旗(qi)所有小區(qu)(qu)統(tong)一(yi)(yi)到(dao)云(yun)平臺(tai)管理實時查看到(dao)每個(ge)(ge)(ge)(ge)小區(qu)(qu)人(ren)員進(jin)出(chu)(chu)情況,每一(yi)(yi)個(ge)(ge)(ge)(ge)小區(qu)(qu)獨立(li)生成一(yi)(yi)個(ge)(ge)(ge)(ge)二維碼,每個(ge)(ge)(ge)(ge)小區(qu)(qu)可(ke)獨立(li)管理進(jin)出(chu)(chu)人(ren)員。系統(tong)采(cai)用云(yun)架(jia)構開(kai)發,采(cai)用多級權(quan)限隔離機(ji)制,形成各個(ge)(ge)(ge)(ge)區(qu)(qu)域(yu),各個(ge)(ge)(ge)(ge)小區(qu)(qu)單獨數據區(qu)(qu)域(yu),方便管理和數據統(tong)計。每一(yi)(yi)權(quan)限級別可(ke)以管理,查看,統(tong)計自己負責的區(qu)(qu)域(yu)數據,各個(ge)(ge)(ge)(ge)區(qu)(qu)域(yu)數據匯總(zong)形成全區(qu)數(shu)據(ju),數(shu)據(ju)以(yi)表格,報(bao)表,報(bao)告等多種形(xing)式展示,可(ke)以(yi)上報(bao)上一級(ji)部門(men)統計(ji)和(he)調度使(shi)用(yong)。
6.開發方式(shi):手機端采用(yong)微(wei)信小(xiao)程序,包(bao)含用(yong)戶(hu)端和管理員端,PC端采用B/S架構開發,通過PC實現主要數據管理和錄入。
7.微信平臺及小程序(xu)配置:微信公眾平臺(tai)配置及小程序(xu)申請、部署、輔助審核等(deng)工作。
四、系(xi)統主(zhu)要技術指標
系統設計及技術(shu)路線選(xuan)擇綜合考慮(lv)實用(yong)、成熟、先進性(xing)(xing)、可擴(kuo)展性(xing)(xing),同時考慮(lv)系統的(de)易(yi)用(yong)性(xing)(xing)、易(yi)維護性(xing)(xing)。因此,本方案(an)總的(de)技術(shu)路線是采用(yong)B/S的瘦客戶端架構,項目開發基于大數據、云計算、人工智能、區塊鏈等相關技術 ,結合傳統開發語言,充分運用Hadoop、Hyperledger Fabric、SpringCloud、SpringMVC、Spring、JPA、JSP、Freemarker、Spring Data JPA,QueryDSL、Shiro、Lucene、Ehcache、JPA、Spring Data JPA、QueryDSL組成的持久化技術、Shiro安全框架、Lucene全文檢索,實現智能中文分詞和近實時檢索、Freemarker模板及靜態化技術、類似于Gmail驗證碼驗證功能、H5、ES6、Node、Angular、Vue、React 、Webpack等。
1、擴(kuo)展性要求
系統支持無侵入(ru)式(shi)二次開發(插件(jian)模塊開發),輕松整合功(gong)能(neng)菜(cai)單(dan)、權限(xian)、標簽、國際(ji)化、Entity、Dao、Service,新增模塊無需修改原有代碼。二次開發簡便、快捷、易懂,避免了新增模塊時,花費大量時間研究系統菜單、權限等功能的實現方式和原理。
按規范(fan)二(er)次(ci)開(kai)發,新(xin)增代(dai)碼與系統原有(you)代(dai)碼完全分離,完美解(jie)決二(er)次(ci)開(kai)發后系統無法升級或難(nan)以升級的問(wen)題(ti)。
新增加的模(mo)塊功能,可以獨立出(chu)來形成插件,供其他用戶下載(zai)使用,共享開發成果。
2、系統要求跨平臺及國產化(hua)替代(dai)要求
操作系統:支(zhi)持(chi)中標(biao)麒麟(lin)(NeoKylin)、深度Linux(Deepin)、優麒麟(UbuntuKylin)、Unix、Windows等;
數據庫:支(zhi)持(chi)ABASE、MySQL、Oracle、SQLServer、DB2、Sybase、PostgreSQL等;
應用服(fu)務器:支持TAS、Tomcat、Weblogic、WebSphere、JBoss、Jetty、Resin、Glashfish等;
3、系統(tong)高性能及(ji)高可用(yong)性要(yao)求
在當(dang)前特(te)(te)定的(de)背(bei)景下,系統(tong)具(ju)有數據量大、訪問(wen)頻繁、并發(fa)流量大等特(te)(te)點,因此(ci)本系統(tong)著重考(kao)慮(lv)項目的(de)高(gao)并發(fa)、高(gao)可用(yong)(yong)性(xing)、擴(kuo)展(zhan)性(xing)、靈活性(xing)、擴(kuo)充性(xing)等要求,采用(yong)(yong)微服務技(ji)術架構,并且使用(yong)(yong)當(dang)今流行的(de)Docker容器部署。
4、Web端結(jie)構及框架的技術規范
Vue.js是(shi)當前最流行的前端框架(jia),開源免(mian)費,以數據驅動和組件(jian)化的思想構建的,雙向(xiang)綁定(ding)。采用虛(xu)擬(ni)Dom技(ji)(ji)術。比直接(jie)操作(zuo)Dom的效率高3倍。同時,虛(xu)擬(ni)dom技(ji)(ji)術無(wu)關瀏(liu)覽器廠商與(yu)型號,研(yan)發(fa)人員不(bu)再(zai)關心各(ge)瀏(liu)覽器細節。關注重心可以向(xiang)業務(wu)實現傾斜。用于(yu)業務(wu)邏輯的研(yan)發(fa)的時間有(you)效增加(jia),對于(yu)交付時間與(yu)交付質(zhi)量有(you)更有(you)保障。
5、系統所使用數據庫的技術規范(fan)
服務采用mysql或abase作為核心事務數據庫。
Mysql為開源免(mian)費的高(gao)(gao)性(xing)(xing)能關系型數據(ju)庫(ku)(ku),是國際使用(yong)最普遍的數據(ju)庫(ku)(ku)之(zhi)一(yi)。Abase是國產數據(ju)庫(ku)(ku),同樣具有(you)高(gao)(gao)性(xing)(xing)能,高(gao)(gao)可用(yong)性(xing)(xing)等特點,能夠滿(man)足(zu)目(mu)前國產化替代方案(an),系統建設時可以根據(ju)要求選用(yong)二者其中之(zhi)一(yi)。
6、數據(ju)庫集(ji)群方案(an)
? LVS+Keepalived+MySQL
集群搭建架構(gou)圖如下:
根據業界主流(liu)指標(biao)測(ce)算,以及我們的(de)多次壓測(ce)結(jie)果表明,按(an)照我們的(de)集群方案,單臺mysql服務器(8核6G的配置) 每秒并發可以實現550左右,即單臺服務器一秒鐘可以同時支持550條訂單記錄并行寫入,如果發生更大并發,通過異步寫入、消息隊列等處理,可以解決并發10萬以上的業務需要。即在處理高并發時,我們針對熱點數據采用內存數據庫,redis或Hazelcast、消息組件采用Kafka,對數據采用異步處理、服務器可以伸縮擴展。原則上在硬件資源足夠的情況下,能最多做到每秒100萬并發。
附(fu):我們壓測(ce)抽樣情況截圖(tu):
所有數據均不刪(shan)除,實現(xian)問題可追溯。
五、系統安(an)全(quan)及信息安(an)全(quan)指標
軟(ruan)(ruan)件(jian)(jian)(jian)不安全(quan)的(de)因素主(zhu)要來源(yuan)于兩個(ge)方(fang)面(mian),一是軟(ruan)(ruan)件(jian)(jian)(jian)自身(shen)存在錯誤和缺陷引(yin)起的(de)安全(quan)漏(lou)洞,二是來自外(wai)部(bu)的(de)攻擊。良好(hao)(hao)的(de)軟(ruan)(ruan)件(jian)(jian)(jian)開發過程管理可以很(hen)好(hao)(hao)地(di)減少軟(ruan)(ruan)件(jian)(jian)(jian)自身(shen)缺陷,并有(you)效(xiao)抵抗(kang)外(wai)部(bu)的(de)攻擊。
(一)、該(gai)系(xi)統在設計階段考慮(lv)的(de)安全(quan)問(wen)題:
1、數據庫重要信息的保護(hu)
數據庫中(zhong)的(de)重要信息需加密存(cun)儲,并有相(xiang)應的(de)防控措施。
2、配置管理:
對管理(li)界(jie)面進行(xing)未(wei)經授權(quan)(quan)的(de)(de)訪(fang)問、具有更新配置數(shu)據的(de)(de)能力以及對用(yong)戶帳戶和帳戶配置文件進行(xing)未(wei)經授權(quan)(quan)的(de)(de)訪(fang)問。
3、身份驗(yan)證(zheng)
口令長度不低于(yu)8位;口令至少需數字和字符串組合;口令需加密存儲;口令驗證通信信道需加密,以保護身份驗證;使用強密碼,支持密碼有效期和帳戶禁用。
4、訪(fang)問(wen)控制
任何用戶如果希望訪問應用系統中的某一部分,則必須通(tong)過(guo)唯(wei)一的認證授(shou)權方式。
5、敏(min)感(gan)數據(ju)
對網(wang)絡上(shang)傳(chuan)輸的(de)敏(min)感數(shu)據進(jin)行加密;確保(bao)通信通道(dao)的(de)安全(quan);對敏(min)感數(shu)據存儲提供強訪問控制(zhi)。
6、Cookie管理
不要在cookie 中永久性存儲敏感數據;不要使用 HTTP-GET 協議傳遞敏感數據;不要通過 HTTP 連接傳遞身份驗證 cookie。在授權 cookie 內設置安全的 cookie 屬性,以便指示瀏覽器只通過 HTTPS 連接向服務器傳回 cookie。
(二)、開發(fa)過程中(zhong)考慮的安(an)全問(wen)題:
1、內存安全的實現
編程過程中內存數據出現的(de)常見(jian)安全問題(ti),如緩沖區溢出、整數溢出、字符串格式(shi)化(hua)等(deng)。
2、線程/進程安全
如線(xian)程(cheng)(cheng)同步(bu)、線(xian)程(cheng)(cheng)死鎖等
3、科學地處理異(yi)常
異常是程序設計中(zhong)必須處理的,主要(yao)解決怎樣處理異常能夠保證(zheng)系(xi)統的安全性。
4、輸(shu)入(ru)輸(shu)出的(de)安全保障
如(ru)對輸入的合(he)法性檢測。
5、權(quan)限控制的處理
系統(tong)中(zhong)涉及授權和限制訪問,需要有完善的權限控(kong)制機制。
6、數據的(de)保護
數(shu)據篡改和抵賴的防護和檢(jian)驗(yan)
除了(le)加密(mi)解(jie)密(mi)外,還需要(yao)對(dui)(dui)對(dui)(dui)信息(xi)來源的(de)鑒別、對(dui)(dui)信息(xi)的(de)完(wan)整(zheng)和(he)不可否認等功能進行保障。
7、代碼的優化處理
所有的程序,都需經過代碼(ma)優化,代碼(ma)性能的好壞(huai)有時候不僅關系(xi)到(dao)系(xi)統的運行(xing)效(xiao)率,也(ye)關系(xi)到(dao)系(xi)統的安全。
8、Web編(bian)程安全(quan)
Web編(bian)程中(zhong)安(an)全(quan)問題多種多樣,但至少應有應付跨站腳本、SQL注入、Web認證攻擊(ji)、URL操作攻擊(ji)等(deng)安(an)全(quan)問題。
9、參數變(bian)量處理
如果需要設(she)置變量,不能使用缺失的默(mo)認(ren)值,如需設(she)置PATH為一個已知的值,而不能使用啟動時的缺省值。
10、SQL編碼規范(fan)
Ⅰ、系統須(xu)有完善的防止sql注入(ru)處理(li)機制(zhi)。
Ⅱ、SQL 語(yu)句的參(can)數應以變(bian)量形式(shi)傳入。
11、頁面請求處(chu)理應校驗參數的長度(du)
web 服務器在(zai)接受頁面請求時,應校(xiao)驗參數的(de)最(zui)(zui)大長度,截斷超(chao)出最(zui)(zui)大長度的(de)范(fan)圍。
12、登錄失敗信息錯誤提示
web 服務(wu)器在接受用(yong)(yong)戶登錄請求時,不應區分登錄失(shi)敗的提(ti)示信息(如(ru):用(yong)(yong)戶名不存在、密碼(ma)錯誤、密碼(ma)已過期等(deng)),應采用(yong)(yong)統(tong)一的失(shi)敗提(ti)示信息(如(ru):錯誤的用(yong)(yong)戶名或密碼(ma))。
13、錯誤提示(shi)信(xin)息(xi)規范
所有(you)對用(yong)戶顯示的錯(cuo)誤信(xin)息(xi)都不應暴露任何關于系統、網絡或(huo)應用(yong)程(cheng)序(xu)的敏感信(xin)息(xi)。如果(guo)需要(yao)的話,應使用(yong)包含編號的一般的錯(cuo)誤信(xin)息(xi),這種信(xin)息(xi)只(zhi)有(you)開發者或(huo)支持小(xiao)組才(cai)能理解。