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

首頁 > 編程 > .NET > 正文

用正則表達式過濾腳本的研究(ASP.net)

2024-07-10 13:10:02
字體:
來源:轉載
供稿:網友

在做一些網站(特別是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代碼,返回則就是干凈的代碼了。我做過一些簡單的測試,可以滿中要求,只是還存在幾個疑問:

  以上考濾的情況是否比較完善, 還存在其它的腳本攻擊手段嗎?是否會有其它更好的解決辦法?

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 都兰县| 文昌市| 承德市| 辽阳县| 阳高县| 延吉市| 巴塘县| 临江市| 西充县| 枣强县| 和林格尔县| 仁化县| 江都市| 饶河县| 滦南县| 喀喇| 阿瓦提县| 华宁县| 竹山县| 增城市| 友谊县| 怀集县| 合水县| 浏阳市| 三台县| 和林格尔县| 延长县| 英吉沙县| 滦南县| 富裕县| 普安县| 中超| 金溪县| 张掖市| 吉木萨尔县| 灵丘县| 吉安县| 宜君县| 五寨县| 徐闻县| 连州市|