冰楓論壇

標題: (分享)DDOS攻击解决方案 [打印本頁]

作者: KinKALaw    時間: 2017-1-11 16:34
標題: (分享)DDOS攻击解决方案
本帖最後由 KinKALaw 於 2017-1-11 17:05 編輯

作者:liming850628
來源:網絡收集


我相信大家都知道 ddos是什麼來的 但你們知不知道怎樣解決這種問題
代碼解決方案:
  1. 解決方案:
  2. 1、避免XSS的方法之一主要是將用戶所提供的內容輸入輸出進行過濾。 ASP.NET的Server.HtmlEncode()或功能更強的Microsoft Anti-Cross Site Scripting Library。
  3. 2、整體網站的過濾處理,下面是通用處理方法。
  4.    
  5. public class safe_process
  6.     {
  7.         private const string StrRegex = @"<[^>]+?style=[\w]+?:expression\(|\b(alert|confirm|prompt)\b|^\+/v(8|9)| <[^>]*?=[^>]*?&#[^>]*?>|\b(and|or)\b.{1,6}?(=|>|<|\bin\ b|\blike\b)|/\*.+?\*/|<\s*script\b|<\s*img\b|\bEXEC\b|UNION.+?SELECT|UPDATE.+?SET |INSERT\s+INTO.+?VALUES|(SELECT|DELETE).+?FROM|(CREATE|ALTER|DROP|TRUNCATE)\s+(TABLE|DATABASE)";
  8.         public static bool PostData()
  9.         {
  10.             bool result = false;
  11.             for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++)
  12.             {
  13.                 result = CheckData(HttpContext.Current.Request.Form[i].ToString());
  14.                 if (result)
  15.                 {
  16.                     break;
  17.                 }
  18.             }
  19.             return result;
  20.         }
  21.    
  22.         public static bool GetData()
  23.         {
  24.             bool result = false;
  25.             for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
  26.             {
  27.                 result = CheckData(HttpContext.Current.Request.QueryString[i].ToString());
  28.                 if (result)
  29.                 {
  30.                     break;
  31.                 }
  32.             }
  33.             return result;
  34.         }
  35.    
  36.         public static bool CookieData()
  37.         {
  38.             bool result = false;
  39.             for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
  40.             {
  41.                 result = CheckData(HttpContext.Current.Request.Cookies[i].Value.ToLower());
  42.                 if (result)
  43.                 {
  44.                     break;
  45.                 }
  46.             }
  47.             return result;
  48.         }
  49.         public static bool referer()
  50.         {
  51.             bool result = false;
  52.             return result = CheckData(HttpContext.Current.Request.UrlReferrer.ToString());
  53.         }
  54.         public static bool CheckData(string inputData)
  55.         {
  56.   
  57. if (Regex.IsMatch(inputData, StrRegex))
  58.             {
  59.                 return true;
  60.             }
  61.             else
  62.             {
  63.                 return false;
  64.             }
  65.         }
  66.     }
  67. 在Global.asax中的Application_BeginRequest中調用上面的方法進行處理,代碼如下:
  68. protected void Application_BeginRequest(Object sender, EventArgs e)
  69.   {
  70.             string q = "<div style='position:fixed;top:0px;width:100%;height:100%;background-color:white;color:green;font-weight:bold;border-bottom:5px solid # 999;'>
  71. 您的提交帶有不合法參數!</div>";
  72.             if (Request.Cookies != null)
  73.             {
  74.                 if (SteelMachining.Common.safe_360.CookieData())
  75.                 {
  76.                     Response.Write(q);
  77.                     Response.End();
  78.                 }
  79.             }
  80.    
  81.             if (Request.UrlReferrer != null)
  82.             {
  83.                 if (SteelMachining.Common.safe_360.referer())
  84.                 {
  85.                     Response.Write(q);
  86.                     Response.End();
  87.                 }
  88.             }
  89.    
  90.             if (Request.RequestType.ToUpper() == "POST")
  91.             {
  92.                 if (SteelMachining.Common.safe_360.PostData())
  93.                 {
  94.    
  95.                     Response.Write(q);
  96.                     Response.End();
  97.                 }
  98.             }
  99.             if (Request.RequestType.ToUpper() == "GET")
  100.             {
  101.                 if (SteelMachining.Common.safe_360.GetData())
  102.                 {
  103.                     Response.Write(q);
  104.                     Response.End();
  105.                 }
  106.             }
  107.   }
複製代碼
                                 只作研究用途 請勿用作非法目的
   
   


     【免責聲明】:







歡迎光臨 冰楓論壇 (https://bingfong.com/) Powered by 冰楓