国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 網(wǎng)站 > WEB開發(fā) > 正文

正則表達式過濾HTML危險腳本

2024-04-27 13:55:55
字體:
供稿:網(wǎng)友
在做一些網(wǎng)站(特別是bbs之類)時,經(jīng)常會有充許用戶輸入html樣式代碼,卻禁止腳本的運行的需求, 以達到豐富網(wǎng)頁樣式,禁止惡意代碼的運行。
當然不能用 htmlencode 和 htmldecode 方法,因為這樣連基本的html代碼會被禁止掉。
我在網(wǎng)上搜索,也沒有找到好的解決辦法,倒是收集了一些腳本攻擊的實例:
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代碼,返回則就是干凈的代碼了。
http://www.cnblogs.com/skylaugh/archive/2006/09/01/492476.html
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 平武县| 文安县| 西吉县| 文昌市| 酉阳| 武隆县| 霞浦县| 澄江县| 库尔勒市| 奉化市| 屯留县| 砚山县| 禄丰县| 怀柔区| 江孜县| 明水县| 北川| 灵武市| 永泰县| 尖扎县| 太湖县| 永顺县| 修文县| 郓城县| 耿马| 屏南县| 连南| 赣州市| 绿春县| 庆元县| 洞头县| 乐平市| 凤城市| 新乐市| 苏尼特左旗| 当涂县| 抚宁县| 财经| 苍山县| 梓潼县| 丘北县|