博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#过滤掉脚本注入1
阅读量:6670 次
发布时间:2019-06-25

本文共 1739 字,大约阅读时间需要 5 分钟。

hot3.png

正则表达式过滤HTML危险脚本内容简介:在做一些 网站 (特别是bbs之类)时,经常会有充许用户输入html样式代码,却禁止脚本的运行的需求, 以达到丰富网页样式,禁止恶意代码的运行。 当然不能用 htmlencode 和 htmldecode 方法,因为这样连基本的html代码会被 在做一些(特别是bbs之类)时,经常会有充许用户输入html样式代码,却禁止脚本的运行的需求, 以达到丰富网页样式,禁止恶意代码的运行。 

当然不能用 htmlencode 和 htmldecode 方法,因为这样连基本的html代码会被禁止掉。 
我在网上搜索,也没有找到好的解决办法,倒是收集了一些脚本攻击的实例: 
1. <script>标记中包含的代码 /本篇文章发表于
2. <a href=javascript:...中的代码 
3. 其它基本控件的 on...事件中的代码 
4. iframe 和 frameset 中载入其它页面造成的攻击 
有了这些资料后,事情就简单多了,写一个简单的方法,用正则表达式把以上符合几点的代码替换掉: 
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; 
} 本篇文章发表于 
此方法输入可能包含脚本的html代码,返回则就是干净的代码了。

转载于:https://my.oschina.net/guanxinsui/blog/915234

你可能感兴趣的文章
iOS 中NSRunLoop的使用
查看>>
WCF安全:通过 扩展实现用户名密码认证
查看>>
模块化JavaScript设计模式(一)
查看>>
Android4.2.2NDK和源代码开发jni的异同
查看>>
oracle 删除已连接用户
查看>>
这家棋牌游戏厂商冲刺港交所:上半年营收近3亿 曾李青是投资人
查看>>
巴西圣保罗街头上演“唱响中国”新春快闪活动
查看>>
Apollo 3.0来了!百度自动驾驶硬件系统全解读
查看>>
你或许不知道Vue的这些小技巧
查看>>
Vue2.0进阶组件篇1 教你秒撸(短信倒计时组件)
查看>>
测试你的前端代码 - part2(单元测试)
查看>>
使用 Cocos Creator 打造自己的爆款小游戏《方块弹珠》!
查看>>
PHP 依赖注入 (DI) 和容器 (IoC) 的简单实现
查看>>
BCH文件安全存储系统——BFP
查看>>
Python | 数据分析实战Ⅰ
查看>>
Salesforce开源TransmogrifAI:用于结构化数据的端到端AutoML库
查看>>
社会的分工合作(ASIC)才是带来人类富裕的基础
查看>>
全面剖析SharedPreferences
查看>>
0826 - 事情多到让人绝望啊
查看>>
Logback中使用TurboFilter实现日志级别等内容的动态修改
查看>>