安全架構設計的一些解決方案

原创 浮丶云 全栈开发ck

相信大家對安全架構設計都不陌生,特別是在現在這個網路特別發達的時代,隨著網路的不斷發展,網路安全問題日益嚴重,成為企業和個人的重要挑戰。安全架構設計是一門重要的技術領域,涉及保護網路資源和資訊的安全性。本文將從多個角度深入探討安全架構設計方案可行性1.微信小程式資料傳輸加密驗簽方案
1.小程式安全性加固
微信小程式端使用了微信小程式的加強SDK, 對前端程式碼進行了混淆. 在小程式的資料傳輸過程中,前後端使用了AES對稱加密傳輸。
2.用戶後台登入口令限制及安全儲存方案用戶登入密碼驗證用戶登入時,採用資料傳輸加解密方案在服務端得到明文的用戶名稱及密碼,然後使用演算法取得用戶名摘要,再透過用戶名查詢出用戶的密碼摘要進行對比,如果一致登入成功,如果失敗提示使用者名稱或密碼錯誤使用者密碼長度檢查在使用者設定密碼時,檢查使用者口令長度不能小於8位,且必須包含大小寫字母和特殊字元。使用者密碼使用週期限制系統強制要求使用者在使用一段時間(如90天)更換密碼,且新的密碼不能是先前使用過的密碼。登入資訊自動過期使用者在系統中長時間無操作時,系統將使用者的登入資訊自動過期,使用者登入資訊過期後再作業系統提示使用者登入資訊過期並回傳登入頁面提示使用者重新登入
3.敏感設定資訊加解密方案系統會對配置密碼等安全性等級較高的敏感進行加密存儲,如資料庫帳號密碼、Redis密碼等。系統在設定檔中對password字樣的設定項目進行別名替換,並對敏感資訊進行加密
4.檔案上傳下載及檔案儲存安全方案檔案上傳安全方案系統禁止前端直接指定檔案上傳的絕對路徑,需要在背景設定檔案上傳的父路徑白名單系統針對上傳檔案的副檔名,設定白名單;並依照檔案的檔案頭進行實際格式的校驗,防止竄改檔案後綴名繞過白名單限制。系統對於上傳的檔案進行大小限製文件上傳後,對於需要本機儲存的文件,會對文件命名隨機化,防止被列舉而下載。檔案下載安全方案系統針對檔案下載時,提供專門的介面進行對應的檔案下載系統禁止用戶端直接指定檔案下載的絕對路徑,需要在背景設定檔下載允許的路徑白名單,並對下載的檔案名稱提供下載別名,防止使用者根據實際文件名稱遍歷下載其他文件,並對文件下載權限進行限制。
5.防止資料越權存取安全方案系統針對使用者可存取的選單、頁面資源和api介面進行權限限制,系統在建立使用者時可對使用者可操作的選單、頁面資源和api介面進行權限指派。使用者在有權限範圍內的選單、頁面資源和api介面可以正常操作後訪問,對於無權限的操作進行無操作權限提示系統針對需要權限控制的資料進行權限控制,系統可針對不同的使用者進行不同的資料查看權限,如某機構的使用者只能查看其機構及其下屬機構的資料權限。使用者無法查詢不屬於其機構的資料。
6.防範SQL注入、XSS跨站腳本、路徑遍歷安全方案防範SQL注入過濾危​​險字元:union,sleep 預編譯語句:預存程序、JDBC prepareStatement 參數化查詢:Hibernate、MyBatis進行JDBC作業時,使用PreparedStatement進行sql執行,避免直接使用Statement執行sql在使用mybatis時使用#{xxxx}進行參數設定,避免使用${xxxx}進行參數設定使用sql過濾工具對客戶端傳入的資料進行sql注入檢查,對於可能存在風險的數據進行安全提示防範XSS跨站腳本系統在數據入口處設定攔截器攔截請求數據,並對請求數據使用XSS腳本轉義工具commons-lang包下的StringEscapeUtils工具進行處理防範路徑遍歷系統會針對客戶端提交過來的檔案名稱進行硬編碼或統一編碼,過濾非法字元。系統對檔案路徑的前綴和後綴和進行白名單控制,對包含了惡意的符號或空位元組進行拒絕。

7.頁面防止複製、貼上、列印、截圖安全方案防止複製、貼上系統在頁面設定元素的onselectstart事件,返回false禁止頁面資料被選擇系統在頁面設定元素的oncopy事件,返回false禁止頁面資料被複製系統在頁面設定元素的oncut事件,返回false禁止資料剪切系統通過監聽頁面onkeydown事件,禁止CTRL+C和CTRL+V防止列印系統引入NoPrint.js庫,可以設定頁面禁止列印防止截圖系統針對敏感資訊頁面可以設定浮水印,水印內容為當前用戶資訊+當前時間,用戶對系統頁面進行截圖會帶上其個人資訊的水印,在敏感資訊被洩露時可以追溯到對應的責任人,水印也可以提高操作用戶對敏感資訊的保密意識。
8.全站統一報錯處理方案統一異常資訊處理系統針對異常資訊進行統一分類,並透過全域異常處理機制對異常進行統一處理,對於可能洩漏資訊的sql錯誤堆疊資訊、系統運作異常資訊等進行統一處理,不傳回異常堆疊資訊給頁面。統一報錯頁面處理系統針對錯誤頁面403、404、500等頁面進行統一處理,系統不會返回中間件預設的錯誤頁面,系統會根據不同的錯誤類型頁面提供美觀的頁面,並在錯誤頁面提供返回首頁或返回登入頁的按鈕。