返回列表 发帖

[过滤规则] 过滤iframe病毒

以前有位高手写过过滤iframe病毒的代码,不过考虑的不全面,这里我写的一段代码更准确(考虑到style调用的样式及display:none),不过只对html内插入的iframe有效,对于js调用的iframe无效(因为用js可以任意写iframe,无法找到规则)。
  1. #ex#<iframe[^>]*?(\b(width|height)\s*[=:]\D*\d(?!\d)|display\s*:\s*none|visibility\s*:\s*hidden)[^>]*?>\s*<\/iframe>###<b style="color:red">[iframe]</b>
复制代码

[ 本帖最后由 小絮 于 2008-5-27 00:52 编辑 ]
1

评分人数

  • 小絮

欢迎大家讨论

TOP

顶原创
遇到崩溃假死或者感觉速度慢或者其他问题的朋友可以先试试使用TW3
TheWorld we explore the world.

TOP

再测试了一下发现没有考虑到marginwidth ,现在改好了。
  1. #ex#<iframe[^>]*?(\b(width|height)[=:]\D*\d(?!\d)|display:\s*none)[^>]*?>\s*<\/iframe>###<b style="color: red;">[iframe]</b>
复制代码

TOP

不错,谢谢分享!

TOP

非常谢谢楼主的 分享..

对于黑名单只能匹配源文件的情况..
  黑名单想过滤掉 高度.宽度小于10的情况4个字.  有心无力..

本帖隐藏的内容需要积分高于 100 才可浏览


会的人大概都明白我的意思...
天下无不散之筵席.

世界之窗浏览器开发计划

TOP

  自己考虑还不够全面height =1等号前有空格没有考虑进去,我再改,
#ex#<iframe[^>]*?(\b(width|height)\s*[=:]\D*\d(?!\d)|display:\s*none)[^>]*?>\s*<\/iframe>###<b style="color: red;">[iframe]</b>

以下测试通过
1<iframe marginheight=11 height=12 src='xx'></iframe>
2<iframe height =2 src='xx'></iframe>
3<iframe height = '112' src='xx'></iframe>
4<iframe height = "112" src='xx'></iframe>
5<iframe style="height:6px"></iframe>
6<iframe style="display:none"></iframe>
7<iframe style=" height : 6px"></iframe>
8<iframe height = 6></iframe>

TOP

#ex#<iframe [^>]*(?:width|height)\s*=(?:"|'|\s*)?1?\d(?:"|'|\s)[^>]*></iframe>###很小的iframe

另外,楼主的规则使用非捕获括号就更好了.

TOP

这是什么啊 用了以后 新浪评论看不了了

TOP

楼上不明白我的意思...

我的意思是..还有很多很多种情况.. 黑名单这种匹配已知的方式不能完全移除.. 明白么..

不是很说针对某个特定的代码过滤不了..
天下无不散之筵席.

世界之窗浏览器开发计划

TOP

对加过密的有效不
December 21 2012

TOP

没办法,只能针对大部分情况写规则,其他的遇到一个解决一个吧...

TOP

返回列表