javascript過(guò)濾危險(xiǎn)腳本方法
更新時(shí)間:2008年08月22日 13:03:29 作者:
腳本藏身之處不過(guò)有四:
1、<script>標(biāo)簽、<link>標(biāo)簽、<style>標(biāo)簽、iframe標(biāo)簽
2、on開頭的標(biāo)簽屬性
3、javascript(vbscript)偽協(xié)議
4、css的epression
下面是他們的字符串規(guī)則:
1、<(script|link|style|iframe)(.|\n)*<\/\1>\s*
2、\s*on[a-z]+\s*=\s*("[^"]+"|'[^']+'|[^\s]+)\s*(?=>)
3、\s*(href|src)\s*=\s*("\s*(javascript|vbscript):[^"]+"|'\s*(javascript|vbscript):[^']+'|(javascript|vbscript):[^\s]+)\s*(?=>)
4、epression\((.|\n)*\);?
了解他們的規(guī)則后,抓蟲行動(dòng)就水到渠成。
test </textarea>
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
test </textarea>
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
expression() test </textarea>
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
這樣調(diào)用就可以
k1(k2(k3(k4(str))))
這樣就是單純地過(guò)濾腳本而已,所謂過(guò)濾“危險(xiǎn)腳本”應(yīng)該是能夠判斷哪些屬于“危險(xiǎn)"腳本,不危險(xiǎn)的就不過(guò)濾才對(duì)……那可就難辦了,相當(dāng)于防火墻了。
1、<(script|link|style|iframe)(.|\n)*<\/\1>\s*
2、\s*on[a-z]+\s*=\s*("[^"]+"|'[^']+'|[^\s]+)\s*(?=>)
3、\s*(href|src)\s*=\s*("\s*(javascript|vbscript):[^"]+"|'\s*(javascript|vbscript):[^']+'|(javascript|vbscript):[^\s]+)\s*(?=>)
4、epression\((.|\n)*\);?
了解他們的規(guī)則后,抓蟲行動(dòng)就水到渠成。
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
[Ctrl+A 全選 注:引入外部Js需再刷新一下頁(yè)面才能執(zhí)行]
這樣調(diào)用就可以
k1(k2(k3(k4(str))))
這樣就是單純地過(guò)濾腳本而已,所謂過(guò)濾“危險(xiǎn)腳本”應(yīng)該是能夠判斷哪些屬于“危險(xiǎn)"腳本,不危險(xiǎn)的就不過(guò)濾才對(duì)……那可就難辦了,相當(dāng)于防火墻了。
您可能感興趣的文章:
- javascript實(shí)現(xiàn)網(wǎng)頁(yè)屏蔽Backspace事件,輸入框不屏蔽
- JavaScript實(shí)現(xiàn)檢查頁(yè)面上的廣告是否被AdBlock屏蔽了的方法
- javascript屏蔽右鍵代碼
- JavaScript屏蔽指定區(qū)域內(nèi)右鍵菜單
- JavaScript 關(guān)鍵字屏蔽實(shí)現(xiàn)函數(shù)
- javascript 屏蔽鼠標(biāo)鍵盤的幾段代碼
- 在textarea中屏蔽js的某個(gè)function的javascript代碼
- 屏蔽鼠標(biāo)右鍵、Ctrl+n、shift+F10、F5刷新、退格鍵 的javascript代碼
- 實(shí)用javaScript技術(shù)-屏蔽類
- javascript實(shí)現(xiàn)劃詞標(biāo)記+劃詞搜索功能
- JavaScript實(shí)現(xiàn)自動(dòng)對(duì)頁(yè)面上敏感詞進(jìn)行屏蔽的方法
相關(guān)文章
JavaScript實(shí)現(xiàn)數(shù)組去重的14種方法大全
親愛的小伙伴,對(duì)于數(shù)組javascript中的數(shù)組去重方法你知道多少種呢?學(xué)會(huì)如何對(duì)數(shù)組進(jìn)行去重對(duì)于javascript的學(xué)習(xí)來(lái)說(shuō)也是十分重要的,下邊就讓我來(lái)分享一下我所知道的集中數(shù)組去重的方法吧,感興趣的小伙伴跟著小編一起來(lái)看看吧2025-03-03
js跨域問(wèn)題淺析及解決方法優(yōu)缺點(diǎn)對(duì)比
所謂js跨域問(wèn)題,是指在一個(gè)域下的頁(yè)面中通過(guò)js訪問(wèn)另一個(gè)不同域下 的數(shù)據(jù)對(duì)象,出于安全性考 慮,幾乎所有瀏覽器都不允許這種跨域訪問(wèn),這就導(dǎo)致在一些ajax應(yīng)用中,使用跨域的web service會(huì)成為一個(gè)問(wèn)題。 要解決跨域的問(wèn)題,就是本文我們需要探討的了2014-11-11
JavaScript延遲加載之a(chǎn)sync與defer的應(yīng)用
這篇文章主要介紹了JavaScript延遲加載之a(chǎn)sync與defer的應(yīng)用場(chǎng)景與使用區(qū)別的介紹,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-09-09
JavaScript數(shù)組實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列與堆棧
這篇文章主要介紹了JavaScript數(shù)組實(shí)現(xiàn)數(shù)據(jù)結(jié)構(gòu)中的隊(duì)列與堆棧的相關(guān)資料,需要的朋友可以參考下2016-05-05
javascript實(shí)現(xiàn)點(diǎn)擊按鈕讓DIV層彈性移動(dòng)的方法
這篇文章主要介紹了javascript實(shí)現(xiàn)點(diǎn)擊按鈕讓DIV層彈性移動(dòng)的方法,實(shí)例分析了javascript操作div層的操作技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-02-02
fckeditor粘貼Word時(shí)彈出窗口取消的方法
這篇文章主要介紹了fckeditor粘貼Word時(shí)彈出窗口取消的方法,是應(yīng)用fckeditor時(shí)非常實(shí)用的技巧,需要的朋友可以參考下2014-10-10
JS簡(jiǎn)單獲取當(dāng)前日期和農(nóng)歷日期的方法
這篇文章主要介紹了JS簡(jiǎn)單獲取當(dāng)前日期和農(nóng)歷日期的方法,涉及javascript日期運(yùn)算與字符串轉(zhuǎn)換相關(guān)操作技巧,需要的朋友可以參考下2017-04-04

