KinKALaw 發表於 2017-1-11 16:34:28

(分享)DDOS攻击解决方案

本帖最後由 KinKALaw 於 2017-1-11 17:05 編輯

作者:liming850628
來源:網絡收集

我相信大家都知道 ddos是什麼來的 但你們知不知道怎樣解決這種問題
代碼解決方案:解決方案:
1、避免XSS的方法之一主要是將用戶所提供的內容輸入輸出進行過濾。 ASP.NET的Server.HtmlEncode()或功能更強的Microsoft Anti-Cross Site Scripting Library。
2、整體網站的過濾處理,下面是通用處理方法。
   
public class safe_process
    {
        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)";
        public static bool PostData()
        {
            bool result = false;
            for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++)
            {
                result = CheckData(HttpContext.Current.Request.Form.ToString());
                if (result)
                {
                    break;
                }
            }
            return result;
        }
   
        public static bool GetData()
        {
            bool result = false;
            for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
            {
                result = CheckData(HttpContext.Current.Request.QueryString.ToString());
                if (result)
                {
                    break;
                }
            }
            return result;
        }
   
        public static bool CookieData()
        {
            bool result = false;
            for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
            {
                result = CheckData(HttpContext.Current.Request.Cookies.Value.ToLower());
                if (result)
                {
                    break;
                }
            }
            return result;
        }
        public static bool referer()
        {
            bool result = false;
            return result = CheckData(HttpContext.Current.Request.UrlReferrer.ToString());
        }
        public static bool CheckData(string inputData)
        {
  
if (Regex.IsMatch(inputData, StrRegex))
            {
                return true;
            }
            else
            {
                return false;
            }
        }
    }
在Global.asax中的Application_BeginRequest中調用上面的方法進行處理,代碼如下:
protected void Application_BeginRequest(Object sender, EventArgs e)
  {
            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;'>
您的提交帶有不合法參數!</div>";
            if (Request.Cookies != null)
            {
                if (SteelMachining.Common.safe_360.CookieData())
                {
                    Response.Write(q);
                    Response.End();
                }
            }
   
            if (Request.UrlReferrer != null)
            {
                if (SteelMachining.Common.safe_360.referer())
                {
                    Response.Write(q);
                    Response.End();
                }
            }
   
            if (Request.RequestType.ToUpper() == "POST")
            {
                if (SteelMachining.Common.safe_360.PostData())
                {
   
                    Response.Write(q);
                    Response.End();
                }
            }
            if (Request.RequestType.ToUpper() == "GET")
            {
                if (SteelMachining.Common.safe_360.GetData())
                {
                    Response.Write(q);
                    Response.End();
                }
            }
  }                                 只作研究用途 請勿用作非法目的
   
   


     【免責聲明】:

[*]不要將本站資源用於盈利和/或非法目的。
[*]本人亦不承擔會員將本站資源用於盈利和/或非法目的之任何後果和/或法律責任。
[*]本圖像文件皆從網上搜集轉載,不承擔任何技術及版權問題。
[*]下載鏈接僅供測試研究用途,請下載後在24小時內刪除,請勿用於商業目的。


頁: [1]
查看完整版本: (分享)DDOS攻击解决方案