惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

S
SegmentFault 最新的问题
V
Visual Studio Blog
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
量子位
月光博客
月光博客
阮一峰的网络日志
阮一峰的网络日志
T
Tailwind CSS Blog
GbyAI
GbyAI
爱范儿
爱范儿
Y
Y Combinator Blog
宝玉的分享
宝玉的分享
有赞技术团队
有赞技术团队
罗磊的独立博客
Recent Announcements
Recent Announcements
博客园 - 司徒正美
M
MIT News - Artificial intelligence
小众软件
小众软件
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
B
Blog RSS Feed
A
About on SuperTechFans
Hugging Face - Blog
Hugging Face - Blog
Apple Machine Learning Research
Apple Machine Learning Research
雷峰网
雷峰网

博客园 - Nuke'Blog

Linux下架设rsync服务器 Web网站压力及性能测试工具WebBench使用指南 url 中文转码 Linux Crontab 定时任务 命令详解 404、500、502等HTTP状态码介绍 谈谈IT公司常见的离职潮 网易组图新闻显示效果,代码刚抠下来整理好分享大家 土鳖网站是怎样炼成的 SQL语法操作全集 在 Apache 上实现 META 切换 请执行sp_addlinkedserver 将该服务器添加到sysserver解决办法 C#.Net的WinForm中使用水晶报表 iBATIS的like 经典,句句噎死人! 表单元素与提示文字无法对齐的问题(input,checkbox文字对齐) 前台JS限制上传图片质量大小和尺寸 - Nuke'Blog - 博客园 关于网络的IP地址 linux 解压命令总结 JVM内存模型以及垃圾回收 Siege for linux
使用正则表达式过滤html标签,属性,样式表,挂马脚本 - Nuke'...
Nuke'Blog · 2010-10-06 · via 博客园 - Nuke'Blog

本文介绍如何使用正则表达式过滤html标签的属性(style,class),和html标签如a,div和iframe,objectg,script.

1.使用正则表达式过滤标签样式:style,class.

比如<p style="width:100px">或<p class="myclass"></p>

可使用下面的代码:

  1. private string FilterHtml(string element,string content)  
  2. {  
  3.     string pattern = element + "\\s?=\\s?(['\"][^'\"]*?['\"]|[^'\"]\\S*)";             
  4.     try  
  5.     {  
  6.         Regex reg = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);  
  7.         content = reg.Replace(content, "");  
  8.     }  
  9.     catch  
  10.     { }  
  11.     return content;  

这个表达式具有普遍意义:可以过滤html的属性。如table的width等

2.使用正则表达式过滤html标签

  1. private string FilterHtml(string element,string content)  
  2. {  
  3.     string pattern = "<" + element + "[^>]*>|</" + element + ">";            
  4.     try  
  5.     {  
  6.         Regex reg = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);  
  7.         content = reg.Replace(content, "");  
  8.     }  
  9.     catch  
  10.     { }  
  11.     return content;  
  12. }  

可过滤如:<div>和</div>等。

上面的代码对提取文章摘要时很有用处。文章摘要通常先过滤html标签,在提取一段文字的。

3.使用正则表达是过滤object,script,iframe

  1. private string FilterHtml(string element,string content)  
  2. {  
  3.     string pattern = "<(?<tag>" + element + @")[^>]*>[\s\S]*</\k<tag>>";  
  4.     try  
  5.     {  
  6.         Regex reg = new Regex(pattern, RegexOptions.IgnoreCase | RegexOptions.Compiled);  
  7.         content = reg.Replace(content, "");  
  8.     }  
  9.     catch  
  10.     { }  
  11.     return content;  
  12. }  

在html中通过script,iframe挂马令人痛恨。使用上面的代码可以过滤这些害人虫。