>  기사  >  백엔드 개발  >  .NET은 재생 공격을 방지하기 위해 타임스탬프를 추가합니다.

.NET은 재생 공격을 방지하기 위해 타임스탬프를 추가합니다.

黄舟
黄舟원래의
2017-02-22 10:34:062285검색

클라이언트가 서버 인터페이스에 요청하는 경우 요청 정보가 암호화되어 요청 패키지를 제3자가 가로채더라도 제3자가 데이터를 해독하여 얻을 수는 없지만 요청 패키지를 반복적으로 사용할 수 있습니다. 처리 중입니다. 서버가 재생 공격을 막지 못하면 서버에 대한 부담이 커지고 데이터가 무질서해지게 됩니다. 이 문제는 타임스탬프를 추가하여 해결할 수 있습니다.

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으로 문의하세요.