php 恶意代码过滤函数public function decodefilter(html, filter)
html=lcase(html)
filter=split(filter,,)
for each i in filter
select case i
case script ' 去除所有客户端脚本javascipt,vbscript,jscript,js,vbs,event,...
html = exere((javascript|jscript|vbscript|vbs):, #, html)
html = exere(?script[^>]*>, , html)
html = exere(on(mouse|exit|error|click|key), , html)
case table: ' 去除表格
html = exere(?table[^>]*>, , html)
html = exere(?tr[^>]*>, , html)
html = exere(?th[^>]*>, , html)
html = exere(?td[^>]*>, , html)
html = exere(?tbody[^>]*>, , html)
case class ' 去除样式类class=
html = exere((]+) class=[^ |^>]*([^>]*>), $1 $2, html)
case style ' 去除样式
html = exere((]+) [^]*([^>]*>), $1 $2, html)
html = exere((]+) style='[^']*'([^>]*>), $1 $2, html)
case img ' 去除样式
html = exere(?img[^>]*>, , html)
case xml ' 去除xml
html = exere(]*>, , html)
case namespace ' 去除命名空间>>
html = exere(]*>, , html)
case font ' 去除字体
html = exere(?font[^>]*>, , html)
html = exere(?a[^>]*>, , html)
html = exere(?span[^>]*>, , html)
html = exere(?br[^>]*>, , html)
case marquee ' 去除字幕
html = exere(?marquee[^>]*>, , html)
case object ' 去除对象
html = exere(?object[^>]*>, , html)
html = exere(?param[^>]*>, , html)
'html = exere(?embed[^>]*>, , html)
case embed
html = exere(?embed[^>]*>, , html)
case div ' 去除对象
html = exere(?div([^>])*>, $1, html)
html = exere(?p([^>])*>, $1, html)
case onload ' 去除样式
html = exere((]+) onload=[^]*([^>]*>), $1 $2, html)
html = exere((]+) onload='[^']*'([^>]*>), $1 $2, html)
case onclick ' 去除样式
html = exere((]+) onclick=[^]*([^>]*>), $1 $2, html)
html = exere((]+) onclick='[^']*'([^>]*>), $1 $2, html)
case ondbclick ' 去除样式
html = exere((]+) ondbclick=[^]*([^>]*>), $1 $2, html)
html = exere((]+) ondbclick='[^']*'([^>]*>), $1 $2, html)
end select
next
'html = replace(html,
'html = replace(html,
'html = replace(html, decodefilter = html
end function
http://www.bkjia.com/phpjc/629754.htmlwww.bkjia.comtruehttp://www.bkjia.com/phpjc/629754.htmltecharticlephp 恶意代码过滤函数 public function decodefilter(html, filter) html=lcase(html) filter=split(filter,,) for each i in filter select case i case script ' 去除所有客户端...
