糯米文學吧

位置:首頁 > 設計 > 網頁設計

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

導語:在做一些網站(特別是bbs之類)時,經常會有充許用户輸入html樣式代碼,卻禁止腳本的運行的需求, 以達到豐富網頁樣式,禁止惡意代碼的運行。以下的是本站小編為大家蒐集的正則表達式過濾HTML危險腳本的實例,希望對你會有所幫助。

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

不能用 htmlencode 和 htmldecode 方法,因為這樣連基本的html代碼會被禁止掉。

  以下是一些腳本攻擊的實例:

1. <script>標記中包含的代碼

2. <a href=javascript:...中的代碼

3. 其它基本控件的` on...事件中的代碼

4. iframe 和 frameset 中載入其它頁面造成的攻擊

有了這些資料後,事情就簡單多了,下面簡單的方法,用正則表達式把以上符合幾點的代碼替換掉:

public string wipescript(string html)

{

x regex1 = new x(@"<script[ss]+</script *>",recase);

x regex2 = new x(@" href *= *[ss]*script *:",recase);

x regex3 = new x(@" on[ss]*=",recase);

x regex4 = new x(@"<iframe[ss]+</iframe *>",recase);

x regex5 = new x(@"<frameset[ss]+</frameset *>",recase);

html = ace(html, ""); //過濾<script></script>標記

html = ace(html, ""); //過濾href=javascript: (<a>) 屬性

html = ace(html, " _disibledevent="); //過濾其它控件的on...事件

html = ace(html, ""); //過濾iframe

html = ace(html, ""); //過濾frameset

return html;

}

此方法輸入可能包含腳本的html代碼,返回則就是乾淨的代碼了。