/// <summary>/// 过滤标记/// </summary>/// <param name="NoHTML">包括HTML,脚本,数据库关键字,特殊字符的源码 </param>/// <returns>已经去除标记后的文字</returns>    public static string NoHTML(string Htmlstring)    {if (Htmlstring == null)        {return "";        }else        {//删除脚本            Htmlstring = Regex.Replace(Htmlstring, @"<script[^>]*?>.*?</script>", "", RegexOptions.IgnoreCase);//删除HTML            Htmlstring = Regex.Replace(Htmlstring, @"<(.[^>]*)>", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"([\r\n])[\s]+", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"-->", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"<!--.*", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(quot|#34);", "\"", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(amp|#38);", "&", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(lt|#60);", "<", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(gt|#62);", ">", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(nbsp|#160);", " ", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(iexcl|#161);", "\xa1", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(cent|#162);", "\xa2", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(pound|#163);", "\xa3", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&(copy|#169);", "\xa9", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, @"&#(\d+);", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);

//删除与数据库相关的词            Htmlstring = Regex.Replace(Htmlstring, "select", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "insert", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "delete from", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "count''", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "drop table", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "truncate", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "asc", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "mid", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "char", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "xp_cmdshell", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "exec master", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "net localgroup administrators", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "and", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "net user", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "or", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "net", "", RegexOptions.IgnoreCase);//Htmlstring = Regex.Replace(Htmlstring,"*", "", RegexOptions.IgnoreCase);//Htmlstring = Regex.Replace(Htmlstring,"-", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "delete", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "drop", "", RegexOptions.IgnoreCase);            Htmlstring = Regex.Replace(Htmlstring, "script", "", RegexOptions.IgnoreCase);

//特殊的字符            Htmlstring = Htmlstring.Replace("<", "");            Htmlstring = Htmlstring.Replace(">", "");            Htmlstring = Htmlstring.Replace("*", "");            Htmlstring = Htmlstring.Replace("-", "");            Htmlstring = Htmlstring.Replace("?", "");            Htmlstring = Htmlstring.Replace(",", "");            Htmlstring = Htmlstring.Replace("/", "");            Htmlstring = Htmlstring.Replace(";", "");            Htmlstring = Htmlstring.Replace("*/", "");            Htmlstring = Htmlstring.Replace("\r\n", "");            Htmlstring = HttpContext.Current.Server.HtmlEncode(Htmlstring).Trim();

return Htmlstring;        }

    }

转自:http://hi.baidu.com/squirrel_/blog/item/7c4c083b9b8384e714cecb7f.html

转载于:https://www.cnblogs.com/dupeng0811/archive/2012/03/07/2383743.html

【转】C# 过滤HTML,脚本,数据库关键字,特殊字符相关推荐

  1. php gt lte gte,springdata jpa封装数据库关键字(EQ, LIKE, GT, LT, GTE, LTE,IN)

    数据库关键字申明,类SearchFilter: /*************************************************************************** ...

  2. PHP 一个可以过滤非法脚本的函数

    这里提供一个过滤非法脚本的函数: function RemoveXSS($val) {     // remove all non-printable characters. CR(0a) and L ...

  3. 数据表列名与数据库关键字冲突,在Hibernate下的解决办法

    设计了一个数据库,某一个列名字是key,这与mysql数据库关键字冲突了,Hibernate下save总是报错. 在mysql命令中,解决办法很简单,只需要将关键字key用引号括起来就好了. 在Hib ...

  4. java 过滤xss脚本_Java Web应用程序的反跨站点脚本(XSS)过滤器

    java 过滤xss脚本 这是为Java Web应用程序编写的一个好简单的反跨站点脚本(XSS)过滤器. 它的基本作用是从请求参数中删除所有可疑字符串,然后将其返回给应用程序. 这是我以前关于该主题的 ...

  5. java 过滤脚本_【快学SpringBoot】过滤XSS脚本攻击(包括json格式)

    XSS攻击是什么 XSS攻击全称跨站脚本攻击,是为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,XSS是一种在web应用中的计算机安 ...

  6. ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL、DBA必备)

    ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 文章目录 ORACLE数据库查询锁表语句sql脚本,以及删除锁信息脚本(数据库开发ETL.DBA必备) 前 ...

  7. 数据库关键字(保留字)

    达梦数据库 1 KEYWORD LENGTH 2 ABORT 5 3 ABSOLUTE 8 4 ABSTRACT 8 5 ACCESSED 8 6 ACCOUNT 7 7 ACROSS 6 8 ACT ...

  8. springdata jpa封装数据库关键字(EQ, LIKE, GT, LT, GTE, LTE,IN)

    数据库关键字申明,类SearchFilter: /*************************************************************************** ...

  9. mybatis自动识别数据库关键字

    用MyBatis Generator生成mapper文件时,当数据库表中有类似name,describe等,这些关键字时,会提示sql语句有误的错误,解决方法: 在generatorConfig.xm ...

  10. Mysql一些表结构字段是数据库关键字需要避开,如果发现了就需要解决

    数据库关键字链接需要避开,如果发现了就需要解决 https://dev.mysql.com/doc/refman/5.7/en/keywords.html 2.解决办法: 在字段前面` 主要解决Sri ...

最新文章

  1. 想成为BAT中的一员,你总要去学点什么(一)
  2. 【经典回放】多种语言系列数据结构线性表之一:顺序表
  3. impdp使用network_link导入
  4. 软件架构-里氏替换原则
  5. 这个简单的常见面试题,怎么答才会加分?
  6. 用Lightroom Classic CC2019 mac合并照片以创建全景和HDR全景
  7. ASP.NET Web API实践系列09,在Fiddler和控制台中模拟GET和POST请求
  8. DBeaver下载安装教程
  9. win10去掉微软拼音的简繁体转换
  10. UCB——上界置信算法
  11. jointjs与rapheal简单说明
  12. Codeforces Round #672 (Div. 2) C2 - Pokémon Army (hard version)(贪心,维护变化值)
  13. Java多线程面试题总结(常见多线程面试题)
  14. 大三了,软件工程专业女生能走哪个方向呢?
  15. 计算机专业群名有内涵,有创意的寝室群名字 好听有内涵的寝室名称
  16. 速游面经(游戏服务端开发工程师)
  17. C语言大专补考题目,C语言补考,求助4到大题目.
  18. Android加载长图滑动显示
  19. 百度文库“文源计划”的版权行业“复利效应”
  20. 公司注册资金要实缴吗

热门文章

  1. KS(Kolmogorov–Smirnov)模型区分能力指标
  2. Swift 5用Template自动创建VIPER架构代码
  3. 实战ReactNative 从入门到精通 重要技术解析,5分钟搭建iOS, Android App 实战一
  4. 算法:回溯七 Permutation Sequence数组全排列定位
  5. centos 6.4 安装java_CentOS6.4 64位系统安装jdk 转载
  6. html%3ca%3e标签改字体颜色,HTML URL Encoding 参考
  7. 3d安卓环境搭建_RoboCup 仿真3D简介及环境搭建
  8. Pycharm配置运行/调试时的工作目录
  9. 用python语言提取千位数_C语言怎样提取一个数的十位个位百位千位?
  10. 《how to write and publis a scientific paper》 Chapter 3