2018年6月28日 星期四

如何讓Web API 避免DDOS 攻擊

資訊安全一直都是資訊人重視的一環,網路最常受到一種攻擊DDOS,
一直不斷連線,讓IIS 一直保持連線暴量,其他人就無法正常連線,
針對這種攻繫,已經有人設定好套件囉~  

安裝相關套件

設定web API的連線數設定









到App_Start的webApiConfig 設定連線數

WebApiConfig.cs
  public static class WebApiConfig
   {
       public static void Register(HttpConfiguration config)
       {
           config.Routes.MapHttpRoute(
               name: "DefaultApi",
               routeTemplate: "api/{controller}/{action}/{id}",
               defaults: new { id = RouteParameter.Optional }
           );

        //設定連線數:每分鐘最多只連5次,每小時最多20次,一天限300次(可自行修改)
           ThrottlePolicy policy = new ThrottlePolicy(perMinute: 5,
perHour: 20, perDay: 300)
           {
               IpThrottling = true,
           };

           config.MessageHandlers.Add(new ThrottlingHandler(
                policy,
                policyRepository: new PolicyCacheRepository(),
                repository: new CacheRepository(),
                logger: null
            ));
       }
   }

Controller\SendMailcontroller.cs (建立新的web api)
   public class SendMailcontroller : ApiController
   {
       // GET api/<controller>
       public IEnumerable<string> Get()
       {
           return new string[] { "value1", "value2" };
       }
}


開啟post man 測試超過連線數


每分鐘超過5次


這樣是不是很方便~  不再擔心被ddos攻擊我們的Web API

1 則留言: