文档章节

过滤HTML 脚本 样式 避免样式冲突

rhythmk
 rhythmk
发布于 2014/08/16 16:37
字数 103
阅读 11
收藏 0
public static string ToSafeHtmlString(string content)
{
if (content == null)
{
return string.Empty;
}
if (string.IsNullOrWhiteSpace(content))
{
return content;
}
content = Regex.Replace(content, @"<script[^<>]*?>[\s\S]*?</script>", String.Empty, RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<([\w]+?[^<>]*?) (class|style)=""[^""]*?""([^<>]*?)>", "<$1$3>", RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<([\w]+?[^<>]*?) (class|style)='[^']*?'([^<>]*?)>", "<$1$3>", RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<([\w]+?[^<>]*?) (class|style)=[^<>]*?( [^<>]*?|)>", "<$1$3>", RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<frameset[^<>]*?>[\s\S]*?</frameset>", String.Empty, RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<frameset[^<>]*?>", String.Empty, RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<iframe[^<>]*?>[\s\S]*?</iframe>", String.Empty, RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<iframe[^<>]*?>", String.Empty, RegexOptions.IgnoreCase);
content = Regex.Replace(content, @"<script[^<>]*?>", String.Empty, RegexOptions.IgnoreCase);
return content;
}



© 著作权归作者所有

rhythmk
粉丝 1
博文 62
码字总数 40987
作品 0
广州
私信 提问
xss和csrf攻击的那些事儿

xss xss 的全称是,缩写为了避免和样式css冲突,于是缩写为xss 中文意思是跨站脚本攻击。 xss攻击一般是指用恶意的脚本代码去篡改网页,以获取用户的隐私信息。 xss分类 反射型 反射型是通过...

胡志武98
06/15
0
0
WordPress引入CSS与JavaScript

WordPress引入css/js 是我们制作主题时首先面对的一个难点,任何一款主题都要加载自己的css,js,甚至很有可能还需要加载Jquery文件,网上方法特多,说法不一,我们今天借鉴wordpress官方最新的...

临江仙卜算子
01/04
78
0
Esmool/jQuery.masterPage.js

jQuery.masterPage.js 基于 jQuery 的母版页驱动引擎 依赖 jQuery 1.11.1 (通过测试, 早期版本不做保证) 用法 母版页制作 使用jsp制作母版页, 在母版页中按照完整的HTML格式书写HTML, 需要使...

Esmool
2016/04/25
0
0
【CSS】样式的优先级

rabbit.jpg 优先级的出现是为了解决CSS样式冲突的问题。 以下两种情况会导致样式冲突: 继承,从多个祖辈那里继承相同的属性。 同一个元素有多个样式(例如为某个段落定义了类样式,又定义了...

KelvinZ
2018/01/16
0
0
CSS中behavior属性语法

本文和大家重点讨论一下CSS中behavior属性语法的使用,在进行CSS网页布局的时候,我们经遇到刷新要保留表单里内容的时候,习惯的做法使用cookie,但是那样做实在是很麻烦,CSS中的behavior就...

飛飛飛jjs
2016/11/30
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Spring Boot + Mybatis + Ehcache 二级缓存实例

二级缓存是多个SqlSession共享的,其作用域是mapper的同一个namespace,不同的sqlSession两次执行相同namespace下的sql语句且向sql中传递参数也相同即最终执行相同的sql语句,第一次执行完毕...

xiaolyuh
18分钟前
4
0
Spring源码学习(二)哎呦,按菜谱做菜与AbstractAutowireCapableBeanFactory.createBean流程差不多

记得跟老婆谈恋爱时,有一天心血来潮给老婆做饭,按照菜谱一步一步的做,结果差点把厨房烧了!!! 这事至今老婆还记得。 入口 上一篇说了,AbstractBeanFactory.getBean的主流程 ,今天来说下...

温安适
20分钟前
34
0
前端UI攻城狮 你们该抛弃jQuery了

你不再需要jQuery! Web工程师太依赖jQuery了,某种意义上说jQuery已经成了JavaScript的同义词。但是我们真的需要他么?或许我们应该反思一下什么时候才真的需要jQuery。 对我个人而言开始使...

前端老手
22分钟前
5
0
六、Java设计模式之工厂方法

工厂方法定义: 定义一个创建对象的接口,但让实现这个接口的类来决定实例化哪个类,工厂方法让类的实例化推迟到子类中进行 类型:创建型 工厂方法-使用场景: 创建对象需要大量重复的代码 ...

东风破2019
今天
6
0
win服务器管理遇到的一系列问题记录

有些小伙伴在使用iis7远程桌面管理工具的时候总是会遇到一系列的问题,下面就是为大家介绍一下服务器日常管理过程中出现的问题及我的解决办法和心得。希望能帮到大家。   拒绝服务器重新启...

1717197346
今天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部