用正则表达式过滤脚本的一些研究(asp.net + C#)

  public string wipeScript(string html)
  
{
       System.Text.RegularExpressions.Regex regex1 
= new System.Text.RegularExpressions.Regex(@"<script[\s\S]+</script *>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
       System.Text.RegularExpressions.Regex regex2 
= new System.Text.RegularExpressions.Regex(@" href *= *[\s\S]*script *:",System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
       System.Text.RegularExpressions.Regex regex3 
= new System.Text.RegularExpressions.Regex(@" on[\s\S]*=",System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
       System.Text.RegularExpressions.Regex regex4 
= new System.Text.RegularExpressions.Regex(@"<iframe[\s\S]+</iframe *>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
       System.Text.RegularExpressions.Regex regex5 
= new System.Text.RegularExpressions.Regex(@"<frameset[\s\S]+</frameset *>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);   
       html 
= regex1.Replace(html, ""); //过滤<script></script>标记
       html = regex2.Replace(html, ""); //过滤href=javascript: (<A>) 属性
       html = regex3.Replace(html, " _disibledevent="); //过滤其它控件的on事件
       html = regex4.Replace(html, ""); //过滤iframe
       html = regex5.Replace(html, ""); //过滤frameset
       return html;
  }

posted @ 2007-01-16 15:18  翅膀  阅读(425)  评论(0)    收藏  举报