如果在页面控件输入<Br>等字符,提交过程中就会报错。
如果设置[ValidateInput(false)] //取消客户端数据过滤,服务器就不会进行过滤,但是不进行过滤安全行有不行,现在想自定义一个过滤器,对页面进行过滤,或者使用系统过滤器,添加设置错误页(错误代码)protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (HttpContext.Current.Server.GetLastError() is HttpRequestValidationException)
{
HttpContext.Current.Response.Write("请输入合法的字符串【<a href=\"javascript:history.back(0);\">返回</a>】");
HttpContext.Current.Server.ClearError();
}
}
在MVC中我不知道这个代码如何添加??如果能添加页面错误处理那么问题也就好处理了!
如果设置[ValidateInput(false)] //取消客户端数据过滤,服务器就不会进行过滤,但是不进行过滤安全行有不行,现在想自定义一个过滤器,对页面进行过滤,或者使用系统过滤器,添加设置错误页(错误代码)protected void Page_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
if (HttpContext.Current.Server.GetLastError() is HttpRequestValidationException)
{
HttpContext.Current.Response.Write("请输入合法的字符串【<a href=\"javascript:history.back(0);\">返回</a>】");
HttpContext.Current.Server.ClearError();
}
}
在MVC中我不知道这个代码如何添加??如果能添加页面错误处理那么问题也就好处理了!
/// <summary>
/// 移除Html标记
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public static string RemoveHtml(string content)
{
string regexstr = @"<[^>]*>";
return Regex.Replace(content, regexstr, string.Empty, RegexOptions.IgnoreCase);
}
/// <summary>
/// 过滤HTML中的不安全标签
/// </summary>
/// <param name="content"></param>
/// <returns></returns>
public static string RemoveUnsafeHtml(string content)
{
content = Regex.Replace(content, @"(\<|\s+)o([a-z]+\s?=)", "$1$2", RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"(script|frame|form|meta|behavior|style)([\s|:|>])+", "$1.$2", RegexOptions.IgnoreCase);
return content;}以上代码参考下 ..
你可以在 过滤器 上 判断 有 恶意代码 就跳转到一个 erorr 页面 不就可以了吗