post 防篡改 如何防止http請求資料被篡改

2021-10-17 06:11:01 字數 886 閱讀 1387

故事的開始,面試官問了我乙個問題:

如何防止http請求中資料被篡改?

回答:1.設定客戶端ip黑/白名單

1.1.客戶端所有請求,請求到**伺服器(nginx),**伺服器維護黑/白名單的ip,決定是否**請求。

1.2.專案建立乙個filter,攔截所有請求,在filter的方法中,通過request資訊匹配ip黑/白名單,和url的攔截規則,決定是否合法。

優點:簡單粗暴。

缺點:需要客戶端的ip固定。

應用場景:併發量小的場景。比如系統的後台管理服務,客服需要人工審批和通過涉及到錢財的業務,就可以使用這種簡單粗暴的方式,防止賬號洩露,介面洩露等等。

2.請求引數sign簽名

2.1前端發起http請求,對引數排序,然後使用 引數與私鑰拼接,在進行md5加密 等方式,生成乙個簽名出來,一起發給服務端,服務端這邊獲取到引數,簽名,再使用自己的私鑰進行同樣方式的加密生成簽名,比對簽名是否一致。一致則認為合法,不一致則不合法。但是無法防止重複請求攻擊!

2.2針對上面方法公升級,可以快取每次請求的md5值,或者給每個請求新增uuid+隨機數這樣乙個代表請求序號的標識。然後請求到服務端時,服務端想辦法快取起來起來這個標識,每次請求過來時,判斷是否已經請求過。但是快取怎麼實現,如何維護?而且併發量高的話,每個請求過來都先查快取,是否影響效能。

2.3在請求的引數中和簽名結果裡,加入時間戳這個引數,業務伺服器一方面比較簽名結果,一方面根據時間戳,來認證請求的合法性,比如允許請求的時間戳與伺服器當前時間,存在20秒的誤差等自定義規則。超過20秒的合法請求,伺服器也不處理,防止惡意的重複請求。

2.4時間戳+md51 時間差120s以上代表重複請求,md5寫快取,快取時長120s(大於等於上面的值就行),判斷如果有md5代表重複請求。

3.請求方式換成https

post 防篡改 如何防止http請求資料被篡改

方式一 設定客戶端ip黑 白名單 1.1客戶端所有請求,請求到 伺服器 nginx 伺服器維護黑 白名單的ip,決定是否 請求 1.2專案建立乙個filter,攔截所有請求,在filter的方法中,通過request資訊匹配ip黑 白名單,和url的攔截規則,決定是否合法 有點 簡單粗暴 確定 需要...

如何實現網頁防篡改

最近想和朋友搞乙個防篡改的東西,我自己羅列了一些,諮詢下各位篡改網頁的途徑和相應的方法,小弟不才,不勝賜教.一 網頁篡改的途徑 1 sql注入後獲取webshell 黑客通過web應用程式的漏洞,通過sql語句提交非法的語句到資料,通過系統以及第三方軟體的漏洞獲取web的控制許可權或者伺服器許可權 ...

如何防止網頁篡改系統技術的比較

一 三種技術 1.外掛程式輪詢技術 外掛程式輪詢技術是利用乙個網頁檢測程式,以輪詢方式讀出要監控的網頁,與真實網頁相比較,來判斷網頁內容的完整性,對於被篡改的網頁進行報警和恢復。2.核心內嵌技術 核心內嵌技術是將篡改檢測模組內嵌在web伺服器軟體裡,它在每乙個網頁流出時都進行完整性檢查,對於篡改網頁...