欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【.Net程序中整站通用的防SQL注入函数】,下面是详细的分享!
.Net程序中整站通用的防SQL注入函数
防止sql注入,通常一个一个文件修改不仅麻烦而且还有漏掉的危险,下面我说一上如何从整个系统防止注入。
做到以下三步,相信的程序将会比较安全了,而且对整个网站的维护也将会变的简单。
一、数据验证类:
parameterCheck.cs
publicclassparameterCheck{
publicstaticboolisEmail(stringemailString){
returnSystem.Text.RegularExpressions.Regex.IsMatch(emailString,"['\\w_-]+(\\.['\\w_-]+)*@['\\w_-]+(\\.['\\w_-]+)*\\.[a-zA-Z]{2,4}");
}
publicstaticboolisInt(stringintString){
returnSystem.Text.RegularExpressions.Regex.IsMatch(intString,"^(\\d{5}-\\d{4})|(\\d{5})$");
}
publicstaticboolisUSZip(stringzipString){
returnSystem.Text.RegularExpressions.Regex.IsMatch(zipString,"^-[0-9]+$|^[0-9]+$");
}
}
二、Web.config
在你的Web.config文件中,在<appSettings>下面增加一个标签:如下
<appSettings>
<addkey="safeParameters"value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip"/>
</appSettings>
其中key是<saveParameters>后面的值为"OrderId-int32"等,其中"-"前面表示参数的名称比如:OrderId,后面的int32表示数据类型。
三、Global.asax
在Global.asax中增加下面一段:
protectedvoidApplication_BeginRequest(Objectsender,EventArgse){
String[]safeParameters=System.Configuration.ConfigurationSettings.AppSettings["safeParameters"].ToString().Split(',');
for(inti=0;i<safeParameters.Length;i++){
StringparameterName=safeParameters[i].Split('-')[0];
StringparameterType=safeParameters[i].Split('-')[1];
isValidParameter(parameterName,parameterType);
}
}
publicvoidisValidParameter(stringparameterName,stringparameterType){
stringparameterValue=Request.QueryString[parameterName];
if(parameterValue==null)return;
if(parameterType.Equals("int32")){
if(!parameterCheck.isInt(parameterValue))Response.Redirect("parameterError.aspx");
}
elseif(parameterType.Equals("double")){
if(!parameterCheck.isDouble(parameterValue))Response.Redirect("parameterError.aspx");
}
elseif(parameterType.Equals("USzip")){
if(!parameterCheck.isUSZip(parameterValue))Response.Redirect("parameterError.aspx");
}
elseif(parameterType.Equals("email")){
if(!parameterCheck.isEmail(parameterValue))Response.Redirect("parameterError.aspx");
}
}
以后需要修改的时候我们只需要修改以上三个文件,对整个系统的维护将会大大提高效率,当然你可以根据自己的需要增加其它的变量参数和数据类型。
以上所分享的是关于.Net程序中整站通用的防SQL注入函数,下面是编辑为你推荐的有价值的用户互动:
相关问题:php防sql注入的代码
答://POST过滤安全 $_POST=check_input($_POST); function check_input($value) { if(get_magic_quotes_gpc()){ $value = htmlspecialchars(trim($value)); } else { $value = addslashes(htmlspecialchars(trim($value))); } return $value; } 另... >>详细
相关问题:我的网站是asp+access 请高手给个防注入代码程序 ...
答:给你个通用的sql防注入代码 关键是过滤 ' 和括号 Dim Fy_Post,Fy_Get,Fy_cook,Fy_In,Fy_Inf,Fy_Xh,Fy_db,Fy_dbstr,aa On Error Resume Next Fy_In = "'|exec|insert|select|delete|update|count|chr|truncate|char|declare|--|script|*|char|set... >>详细
相关问题:如何在PHP应用中防止SQL注入
答:过滤一些常见的数据库操作关键字, select ,insert,update,delete,and,*等或通过系统函数addslashes对内容进行过滤 php配置文件中register_globals=off;设置为关闭状态.(作用将注册全局变量关闭);如接收POST表单的值使用$_POST['user'],假设设置... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
