如過客戶端在向服務端介面進行請求,如果請求資訊進行了加密處理,被第三方截取到請求包,雖然第三方無法解密獲取其中的數據,但是可以使用該請求包進行重複的請求操作。如果服務端不進行防重播攻擊,就會參數伺服器壓力增大,資料紊亂的後果。而使用加入時間戳記的方式可以解決這個問題。
private readonly string TimeStamp = ConfigurationManager.AppSettings["TimeStamp"];//配置时间戳 [HttpPost] public ActionResult TestApi() { string RequestTime = Request["rtime"]; //请求时间经过RSA签名 try { //请求时间RSA解密后加上时间戳的时间即该请求的有效时间 DateTime Requestdt = DateTime.Parse(RSACryptoProvider.Decrypt(RequestTime, RSA_Keys.Private)).AddMinutes(int.Parse(TimeStamp)); DateTime Newdt = DateTime.Now; //服务器接收请求的当前时间 //if 请求的有效时间 < 现在服务器接受请求的时间 即该请求失效 if (Requestdt < Newdt) { return Json(new { success = false, message = "该请求已经失效" }); } else { //进行其他操作 } } catch (Exception ex) { return Json(new { success = false, message = "请求参数不和要求" }); } }
以上就是.NET加入時間戳記防止重播攻擊 的內容,更多相關內容請關注PHP中文網(www .php.cn)!