Web页面安全验证类函数代码
- 时间:2015年04月02日 15:41:07 来源:魔法猪系统重装大师官网 人气:17555
///
/// Web请求安全类
///
publicclass RequestKeeper
{
///
/// 获取查询字符串字符值
///
///
///
publicstaticstring GetQuerryString(string key)
{
string s = GetQuerry(key);
return InputText(s);
}
///
///获取查询字符串数字值
///
///
///
publicstaticint GetQuerryInt(string key)
{
int i =0;
int.TryParse(GetQuerryString(key), out i);
return i;
}
#region Utilities
privatestaticstring GetQuerry(string key)
{
string s ="";
if (System.Web.HttpContext.Current.Request.QueryString[key] !=null)
{
s = System.Web.HttpContext.Current.Request.QueryString[key];
}
return s;
}
#endregion
///
/// 获取表单字符值
///
///
///
publicstaticstring GetFormString(string strText)
{
return InputText(strText);
}
///
/// 获取表单数字值
///
///
///
publicstaticint GetFormInt(string strText)
{
strText = GetFormString(strText);
int i =0;
int.TryParse(strText, out i);
return i;
}
#region Utilities
///
/// 验证是否为正整数
///
///
///
publicstaticbool IsInt(string str)
{
return Regex.IsMatch(str, @"^[0-9]*$");
}
///
/// 验证是否为日期格式的字符串
///
///
///
publicstaticbool IsDateString(string str)
{
return Regex.IsMatch(str, @"(\d{4})-(\d{1,2})-(\d{1,2})");
}
///
/// 返回 HTML 字符串的编码结果
///
///字符串
/// 编码结果
publicstaticstring HtmlEncode(string str)
{
return HttpUtility.HtmlEncode(str);
}
///
/// 返回 HTML 字符串的解码结果
///
///字符串
/// 解码结果
publicstaticstring HtmlDecode(string str)
{
return HttpUtility.HtmlDecode(str);
}
///
/// 返回 URL 字符串的编码结果
///
///字符串
/// 编码结果
publicstaticstring UrlEncode(string str)
{
return HttpUtility.UrlEncode(str);
}
///
/// 返回 URL 字符串的编码结果
///
///字符串
/// 解码结果
publicstaticstring UrlDecode(string str)
{
return HttpUtility.UrlDecode(str);
}
///
/// HH:mm:ss
///
/// 日期字符串
publicstaticstring GetTime()
{
return GetDateTime("HH:mm:ss", null);
}
///
/// yyyy-MM-dd
///
/// 日期字符串
publicstaticstring GetDate()
{
return GetDateTime("yyyy-MM-dd", null);
}
///
/// yyyy-MM-dd HH:mm:ss
///
/// 日期字符串
publicstaticstring GetDateTime()
{
return GetDateTime("yyyy-MM-dd HH:mm:ss", null);
}
///
/// yyyy-MM-dd HH:mm:ss
///
///需要增加的天数
/// 日期字符串
publicstaticstring GetDateTime(int adddays)
{
return DateTime.Now.AddDays(adddays).ToString("yyyy-MM-dd HH:mm:ss");
}
///
/// 自定义日期
///
///日期格式 如:yyyy-MM-dd
///默认日期 如:2010-10-10
/// 日期字符串
publicstaticstring GetDateTime(string formats, string defaultd)
{
if (string.IsNullOrEmpty(formats)) { formats ="yyyy-MM-dd"; }
if (string.IsNullOrEmpty(defaultd)) { defaultd = DateTime.Now.ToString("yyyy-MM-dd"); }
string d ="";
try
{
d = DateTime.Now.ToString(formats);
}
catch (FormatException e)
{
d = Convert.ToDateTime(defaultd).ToString("yyyy-MM-dd");
}
return d;
}
///
/// 清除所有脚本
///
///
///
privatestaticstring InputText(string inputText)
{
if (inputText ==null) return"";
inputText = Regex.Replace(inputText, "[\\s]{2,}", "");
inputText = Regex.Replace(inputText, "(<[b|B][r|R]/*>)+|(<[p|P](.|\\n)*?>)", "\n");
inputText = Regex.Replace(inputText, "(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", "");
inputText = Regex.Replace(inputText, "<(.|\\n)*?>", "");
inputText = inputText.Replace("'", "''");
return Filter(inputText);
}
///
///
/// 过滤危险字符
///
///
///
publicstaticstring Filter(string input)
{
if ((input ==null) || (input ==""))
{
returnnull;
}
string p =@"exec[\s]{1,}|insert[\s]{1,}into[\s]{1,}|select[\s\S]{1,}from|delete[\s]{1,}|update[\s]{1,}|truncate[\s]{1,}table|--";
MatchCollection matches = Regex.Matches(input, p, RegexOptions.IgnoreCase);
foreach (Match m in matches)
{
input = input.Replace(m.Value, "");
}
return input;
}
#endregion
}
Web,页面,安全,验证,类,函数,代码,summary,W
/// Web请求安全类
///
publicclass RequestKeeper
{
///
/// 获取查询字符串字符值
///
///
///
publicstaticstring GetQuerryString(string key)
{
string s = GetQuerry(key);
return InputText(s);
}
///
///获取查询字符串数字值
///
///
///
publicstaticint GetQuerryInt(string key)
{
int i =0;
int.TryParse(GetQuerryString(key), out i);
return i;
}
#region Utilities
privatestaticstring GetQuerry(string key)
{
string s ="";
if (System.Web.HttpContext.Current.Request.QueryString[key] !=null)
{
s = System.Web.HttpContext.Current.Request.QueryString[key];
}
return s;
}
#endregion
///
/// 获取表单字符值
///
///
///
publicstaticstring GetFormString(string strText)
{
return InputText(strText);
}
///
/// 获取表单数字值
///
///
///
publicstaticint GetFormInt(string strText)
{
strText = GetFormString(strText);
int i =0;
int.TryParse(strText, out i);
return i;
}
#region Utilities
///
/// 验证是否为正整数
///
///
///
publicstaticbool IsInt(string str)
{
return Regex.IsMatch(str, @"^[0-9]*$");
}
///
/// 验证是否为日期格式的字符串
///
///
///
publicstaticbool IsDateString(string str)
{
return Regex.IsMatch(str, @"(\d{4})-(\d{1,2})-(\d{1,2})");
}
///
/// 返回 HTML 字符串的编码结果
///
///字符串
///
publicstaticstring HtmlEncode(string str)
{
return HttpUtility.HtmlEncode(str);
}
///
/// 返回 HTML 字符串的解码结果
///
///字符串
///
publicstaticstring HtmlDecode(string str)
{
return HttpUtility.HtmlDecode(str);
}
///
/// 返回 URL 字符串的编码结果
///
///字符串
///
publicstaticstring UrlEncode(string str)
{
return HttpUtility.UrlEncode(str);
}
///
/// 返回 URL 字符串的编码结果
///
///字符串
///
publicstaticstring UrlDecode(string str)
{
return HttpUtility.UrlDecode(str);
}
///
/// HH:mm:ss
///
///
publicstaticstring GetTime()
{
return GetDateTime("HH:mm:ss", null);
}
///
/// yyyy-MM-dd
///
///
publicstaticstring GetDate()
{
return GetDateTime("yyyy-MM-dd", null);
}
///
/// yyyy-MM-dd HH:mm:ss
///
///
publicstaticstring GetDateTime()
{
return GetDateTime("yyyy-MM-dd HH:mm:ss", null);
}
///
/// yyyy-MM-dd HH:mm:ss
///
///需要增加的天数
///
publicstaticstring GetDateTime(int adddays)
{
return DateTime.Now.AddDays(adddays).ToString("yyyy-MM-dd HH:mm:ss");
}
///
/// 自定义日期
///
///日期格式 如:yyyy-MM-dd
///默认日期 如:2010-10-10
///
publicstaticstring GetDateTime(string formats, string defaultd)
{
if (string.IsNullOrEmpty(formats)) { formats ="yyyy-MM-dd"; }
if (string.IsNullOrEmpty(defaultd)) { defaultd = DateTime.Now.ToString("yyyy-MM-dd"); }
string d ="";
try
{
d = DateTime.Now.ToString(formats);
}
catch (FormatException e)
{
d = Convert.ToDateTime(defaultd).ToString("yyyy-MM-dd");
}
return d;
}
///
/// 清除所有脚本
///
///
///
privatestaticstring InputText(string inputText)
{
if (inputText ==null) return"";
inputText = Regex.Replace(inputText, "[\\s]{2,}", "");
inputText = Regex.Replace(inputText, "(<[b|B][r|R]/*>)+|(<[p|P](.|\\n)*?>)", "\n");
inputText = Regex.Replace(inputText, "(\\s*&[n|N][b|B][s|S][p|P];\\s*)+", "");
inputText = Regex.Replace(inputText, "<(.|\\n)*?>", "");
inputText = inputText.Replace("'", "''");
return Filter(inputText);
}
///
///
/// 过滤危险字符
///
///
///
publicstaticstring Filter(string input)
{
if ((input ==null) || (input ==""))
{
returnnull;
}
string p =@"exec[\s]{1,}|insert[\s]{1,}into[\s]{1,}|select[\s\S]{1,}from|delete[\s]{1,}|update[\s]{1,}|truncate[\s]{1,}table|--";
MatchCollection matches = Regex.Matches(input, p, RegexOptions.IgnoreCase);
foreach (Match m in matches)
{
input = input.Replace(m.Value, "");
}
return input;
}
#endregion
}





