代码改变世界

防范XSS

2017-01-10 23:01  sunice  阅读(190)  评论(0)    收藏  举报

.net framework4.5 提供了AntiXss类,来防范XSS攻击。  

在开放指令的同时过滤危险字符串,使用AntiXss.GetSafeHtmlFragment(html)方法,具体可以参照http://www.cnblogs.com/coderzh/archive/2010/06/24/1764725.html

也可以自定义方法。

public static HtmlString SafrHtml(this HtmlHelper helper, string str)    //保留br、p、em、span、style不被过滤(相当于白名单功能)。
{
  var filterString = str == null ? "" : str.Trim();
  if (string.IsNullOrWhiteSpace(filterString))
  return null;
  var regex = new Regex(@"<(?!br|\/?p|style|\/?span)[^>]*>");
  filterString = regex.Replace(filterString, "");
  return new HtmlString(filterString);
}

View调用

监视结果