以許可權系統為例:
文件內容如下:
該文件主要闡述許可權系統設計方案
1)總結系統運用到的技術方案;
2)用於指導該系統後台人員開發工作。
系統業務不複雜,主要是crud(增刪改查)操作,所以採用單體架構,就能滿足當前系統需求。
系統技術架構圖,如下:
採用現今最流行、最成熟的springboot框架,springboot框架的優勢在於現今市場上擁有較多的最佳實戰案例,架構穩定,團隊成員均對該框架比較熟悉,無需增加額外的學習成本,而且開發效率高。
通過nginx+keepalive實現負載的高可用、可擴充套件、可伸縮。
採用jwt框架,進行token生成、分發、檢驗。
除了基礎表(使用者表、角色表、許可權表、角色許可權表),另設計多一張表——操作記錄表,操作記錄表記錄使用者對系統的操作行為,達到跟蹤、定位異常操作行為的目的。
當前系統設計了操作記錄表,記錄使用者的操作行為,後期可以使用elk(elasticsearch、logstash 和 kibana)框架,通過分析、統計日誌監控使用者的操作行為,達到雙重監控,穩如狗。
系統對接入端報備ip,作為接入端部署伺服器身份認證。
使用hmacsha1簽名演算法,對請求資料作簽名檢驗,達到資料防篡改的目的。
去除請求引數requesttime,對請求引數重新生成簽名,並設計一定的擱值快取到redis,每次請求檢視redis該簽名是否存在,若不存在,持續跑下面的業務流程,若存在,不在走下面的流程,直接返回已經快取的response。
略(同防冪等請求一樣的實現方式)
系統對每次請求都返回token值,接入端下次請求需帶上該token,作為接入端和系統當前會話身份認證,還作為當前會話的時效性認證。
本系統中,常見的列舉攻擊情況有兩種:
1)、固定賬號,列舉密碼攻擊;
2)、固定密碼,列舉賬號攻擊。
系統使用redis記錄登入失敗時賬號或密碼的使用次數,當賬號或密碼的使用次數達到設定的擱值,系統將凍結該賬號或密碼1小時(該值可配置)。
由於sql注入攻擊只能對編譯過程起作用,系統引入mybatis持久層框架,通過mybatis預編譯功能,自動實現防止sql注入。
使用者在做增、改操作時,對請求引數進行xss過濾,防止系統受到xss攻擊。
軟體相關文件彙總
對於軟體工程學科的同學都知道,軟體工程是一門技術含量高設計極其複雜的學科。為了控制好軟體產品質量和規範,就必須用大量的文件約束軟體工程的進度和狀態。浩大的軟體工程對於缺少工作和專案經驗的人來說,必然是摸不著頭腦不知從何開始。為了讓大家能夠快速適應標準的軟體開發過程,今天我為大家粗略的描述開發中需要的...
軟體文件歸類彙總
如今,軟體開發越來越複雜,軟體功能也越來越豐富。而幾乎所有成熟的商業軟體,都是靠乙個開發團隊齊心協力的血汗結晶。羅馬不是一天建成的!當我們震撼於microsoft windows的驚世巨著的同時,也道聽途說了微軟公司軟體工程是如何的完善規範。的確,集數百名員工幾年的共同努力之大成,軟體專案管理的成敗...
系統解決方案文件中的要點
看了一家軟體公司競標時提交的解決方案,覺得不錯。我概述一下它的結構,以後我們可以仿照著寫。1.建設目標。勿廢話,直接指出你的方案可以帶來的幾個方面的好處 2.業務流程。簡明地概括最基本的功能需求,最好以圖形方式描述。這樣甚至可以幫助客戶理清他們的需求。我看到的方案中用了一種矩陣式的描述方式,x方向為...