首頁  >  文章  >  後端開發  >  .NET新增時間戳記防止重播攻擊

.NET新增時間戳記防止重播攻擊

黄舟
黄舟原創
2017-02-22 10:34:062285瀏覽

如過客戶端在向服務端介面進行請求,如果請求資訊進行了加密處理,被第三方截取到請求包,雖然第三方無法解密獲取其中的數據,但是可以使用該請求包進行重複的請求操作。如果服務端不進行防重播攻擊,就會參數伺服器壓力增大,資料紊亂的後果。而使用加入時間戳記的方式可以解決這個問題。

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)!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn