Command_Security.cs 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. using System;
  2. using System.Text.RegularExpressions;
  3. using System.Web;
  4. namespace iNethinkCMS.Command
  5. {
  6. public class Command_Security
  7. {
  8. private const string StrRegex = "'|;|#|([\\s\\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\\s\\b+]*)";
  9. private const string StrRegex_From = "[';#()][\\s+()]*(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\\s+]*";
  10. public static bool PostData()
  11. {
  12. bool flag = false;
  13. for (int i = 0; i < HttpContext.Current.Request.Form.Count; i++)
  14. {
  15. flag = Command_Security.CheckData(HttpContext.Current.Request.Form[i].ToString(), "[';#()][\\s+()]*(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\\s+]*");
  16. if (flag)
  17. {
  18. break;
  19. }
  20. }
  21. return flag;
  22. }
  23. public static bool GetData()
  24. {
  25. bool flag = false;
  26. for (int i = 0; i < HttpContext.Current.Request.QueryString.Count; i++)
  27. {
  28. flag = Command_Security.CheckData(HttpContext.Current.Request.QueryString[i].ToString(), "'|;|#|([\\s\\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\\s\\b+]*)");
  29. if (flag)
  30. {
  31. break;
  32. }
  33. }
  34. return flag;
  35. }
  36. public static bool CookieData()
  37. {
  38. bool flag = false;
  39. for (int i = 0; i < HttpContext.Current.Request.Cookies.Count; i++)
  40. {
  41. flag = Command_Security.CheckData(HttpContext.Current.Request.Cookies[i].Value.ToLower(), "'|;|#|([\\s\\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\\s\\b+]*)");
  42. if (flag)
  43. {
  44. break;
  45. }
  46. }
  47. return flag;
  48. }
  49. public static bool referer()
  50. {
  51. return Command_Security.CheckData(HttpContext.Current.Request.UrlReferrer.ToString(), "'|;|#|([\\s\\b+()]+(select|update|insert|delete|declare|@|exec|dbcc|alter|drop|create|backup|if|else|end|and|or|add|set|open|close|use|begin|retun|as|go|exists)[\\s\\b+]*)");
  52. }
  53. public static bool CheckData(string inputData, string byStrRegex)
  54. {
  55. return Regex.IsMatch(inputData, byStrRegex);
  56. }
  57. }
  58. }