博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
asp.net 防止sql注入 global 文件控制
阅读量:5146 次
发布时间:2019-06-13

本文共 2964 字,大约阅读时间需要 9 分钟。

using System;using System.Collections;using System.ComponentModel;using System.Web;using System.Web.SessionState;using log4net;namespace WebCheminfo {	/// 	/// Global 的摘要说明。	/// 	public class Global : System.Web.HttpApplication	{		/// 		/// 必需的设计器变量。		/// 		private System.ComponentModel.IContainer components = null;      		public Global()		{			InitializeComponent();		}					protected void Application_Start(Object sender, EventArgs e)		{		} 		protected void Session_Start(Object sender, EventArgs e)		{		}		/// 		/// 防止SQL注入		/// 		/// 		/// 		void Application_BeginRequest(Object sender, EventArgs e)		{        			StartProcessRequest();		}		#region SQL注入式攻击代码分析		///  		/// 处理用户提交的请求 		///  		private void StartProcessRequest()		{			 				string getkeys = "";				string sqlErrorPage = "~/";//转向的错误提示页面 				if (System.Web.HttpContext.Current.Request.QueryString != null)				{					for (int i = 0; i < System.Web.HttpContext.Current.Request.QueryString.Count; i++)					{						getkeys = System.Web.HttpContext.Current.Request.QueryString.Keys[i];						if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.QueryString[getkeys]))						{							System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);							System.Web.HttpContext.Current.Response.End();						}					}				}//				if (System.Web.HttpContext.Current.Request.Form != null)//				{//					for (int i = 0; i < System.Web.HttpContext.Current.Request.Form.Count; i++)//					{//						getkeys = System.Web.HttpContext.Current.Request.Form.Keys[i];//						if (getkeys == "__VIEWSTATE") continue;//						if (!ProcessSqlStr(System.Web.HttpContext.Current.Request.Form[getkeys]))//						{//							System.Web.HttpContext.Current.Response.Redirect(sqlErrorPage);//							System.Web.HttpContext.Current.Response.End();//						}//					}//				}			 		}		///  		/// 分析用户请求是否正常 		///  		/// 传入用户提交数据  		/// 
返回是否含有SQL注入式攻击代码
private bool ProcessSqlStr(string Str) { bool ReturnValue = true; try { if (Str.Trim() != "") { string SqlStr = " exec.update.declare.exe.varchar.truncate.create"; string[] anySqlStr = SqlStr.Split('.'); foreach (string ss in anySqlStr) { if (Str.ToLower().IndexOf(ss) !=-1) { ReturnValue = false; break; } } } } catch { ReturnValue = false; } return ReturnValue; } #endregion protected void Application_EndRequest(Object sender, EventArgs e) { } protected void Application_AuthenticateRequest(Object sender, EventArgs e) { } protected void Application_Error(Object sender, EventArgs e) { } protected void Session_End(Object sender, EventArgs e) { } protected void Application_End(Object sender, EventArgs e) { } #region Web 窗体设计器生成的代码 /// /// 设计器支持所需的方法 - 不要使用代码编辑器修改 /// 此方法的内容。 /// private void InitializeComponent() { this.components = new System.ComponentModel.Container(); } #endregion }}

转载于:https://www.cnblogs.com/liulf/archive/2011/07/09/2101981.html

你可能感兴趣的文章
CVE-2019-0708漏洞检测工具
查看>>
CSS最常用和实用的技巧
查看>>
系统设计基础第六周学习总结
查看>>
leetcode 11 Container with Most Water
查看>>
Linux目录结构
查看>>
PLSQLDeveloper_免安装自带client
查看>>
python三级联动
查看>>
CCString 类
查看>>
1505: 酷酷的单词
查看>>
小白实习趣事
查看>>
nginx正向代理SFTP整体配置方案
查看>>
JS 中按键处理
查看>>
Android 4.1 APP中的static变量即使在APP退出后仍然不会被擦除
查看>>
JAVA环境的JAVA_HOME, PATH 和CLASS_PATH设置
查看>>
java tomcat linux 环境变量设置
查看>>
html form action
查看>>
记一次Oracle Clusterware成功安装后的故障处理
查看>>
工作笔记-javascript-网络层封装
查看>>
Laravel Relationship Events
查看>>
求一个有一千个元素的整数数组的最大子数组的和
查看>>