系統加密服務

系統加密服務

需求背景

我們公司因爲要緊急對系統進行安全加密,以前系統都是參數暴漏的,能夠直接獲取操作鏈接等數據,爲防止系統關鍵數據被竊取,系統要進行全面加密,時間只有一個月,上級部門要來進行檢查,因涉及到多個系統,上萬個頁面不能一個一個頁面進行加密,特需要一套框架來支持。

需要實現的功能

  • 對後端透明 後端不需要該任何代碼
  • 對前端透明 前端不需要或者最好不改代碼
  • 實現表單放重複提交
  • 實現重放攻擊攔截
  • 實現XSS 腳本跨站攻擊

實現方案

我們系統的討論了一週時間實現方案如下
* 通過JS 監聽ajax 請求和form表單請求 並對請求的數據進行加密
* 通過繼承HttpServletRequestWrapper 實現參數解析以及XSS防注入
* 使用攔截器搭配註解實現表單放重複提交
* 在提交的JS中加入時間戳的方式配合攔截器和註解實現防重放攻擊

總體實現方案

加密方式

  • 前臺數據通過JS對form表單以及AJAX數據進行加密
  • 要兼容一些校驗框架
  • 加密數據需要加入時間戳用於後臺檢查是否解密成功以及其他用處
  • 後臺得到加密的數據進行解密
  • 通過重寫HttpServletRequestWrapper 和OncePerRequestFilter 來實現
  • 如果是AJAX提交可能需要PYLOAD形式通過流的形式進行解析

表單防重

  • 通過TOKEN形式來實現,網上很多實現,這裏不多說了

XXS防跨站腳本攻擊

  • 通過將參數中的html代碼轉義來實現

對應的JS加密和Java解密的資源可以查看下載

js加密實現

Java 解密

後記

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章