Board logo

标题: [过滤规则] 过滤iframe病毒 [打印本页]

作者: xlez    时间: 2008-5-26 09:32     标题: 过滤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 编辑 ]
作者: 小絮    时间: 2008-5-26 12:33

欢迎大家讨论
作者: mutalisker    时间: 2008-5-26 12:36

顶原创
作者: xlez    时间: 2008-5-26 12:48

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

作者: qionglaoer    时间: 2008-5-26 13:28

不错,谢谢分享!
作者: needed    时间: 2008-5-26 14:03

非常谢谢楼主的 分享..

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

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


会的人大概都明白我的意思...
作者: xlez    时间: 2008-5-26 14:49

  自己考虑还不够全面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>
作者: 狄烁stec    时间: 2008-5-26 15:08

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

另外,楼主的规则使用非捕获括号就更好了.
作者: kinki    时间: 2008-5-26 16:01

这是什么啊 用了以后 新浪评论看不了了
作者: needed    时间: 2008-5-26 16:57

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

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

不是很说针对某个特定的代码过滤不了..
作者: haokeyy    时间: 2008-5-26 17:15

对加过密的有效不
作者: 狄烁stec    时间: 2008-5-26 17:36

没办法,只能针对大部分情况写规则,其他的遇到一个解决一个吧...
作者: ujuj127    时间: 2008-5-26 20:28

楼上咋这么多iframe过滤规则
麻烦楼主整理下呢,这类规则重复有没冲突?
作者: xlez    时间: 2008-5-26 23:21

不能改帖子真麻烦 ,麻烦版主把我前面的帖子都删除了,留下这个代码就可以了
  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>
复制代码

作者: xwgod    时间: 2008-5-27 13:48

积分高于100才能看
作者: yjwgi    时间: 2008-5-27 17:17

帖子可以改啊。
顶楼主的规则
作者: ujuj127    时间: 2008-5-27 19:13

[attach]46416[/attach]



google video过滤掉了, 咋整?
作者: ujuj127    时间: 2008-5-27 20:10

兼容性差了点啊楼主
已知的是googlevideo出问题
还有163邮箱无法添加附件
作者: taitan001    时间: 2008-5-27 20:40

第一次有人发这个规则时
我就用
后来发现误杀好多  马上撤掉
作者: xlez    时间: 2008-5-27 22:11

代码毕竟不是人脑,它是按照一定的规则来处理,它当然不能判断网站iframe是可疑还是安全的,只要满足要求它就会屏蔽。虽然还是有很多正规站在用iframe做统计。
此代码适用于当你浏览那些陌生的站,比如xx站等,能作为提示用。当然对于普通人可能觉得很麻烦,其实选择theworld的安全浏览模式就够了,当发现运行可疑程序会提示。
这个代码就当作大家研究用吧。
作者: needed    时间: 2008-5-30 07:09

楼主辛苦了. ..
作者: bluerain09    时间: 2008-5-30 14:21     标题: 用126邮箱时有问题

用126写信时,不显示写正文的框啊,不能写信了,且邮箱左上角有个红色的[iframe],请看下图:
作者: xlez    时间: 2008-5-31 09:05

你添加到白名单就可以了
作者: lonre    时间: 2008-5-31 22:46

请问与 [安全补丁] 安全浏览必备规则(首发霏凡论坛)2.9更新提示 http://bbs.ioage.com/cn/viewthre ... mp%3Bascdesc%3DDESC

这个哪个更好呢,我得用哪个呢,还是两个都用?
作者: 小絮    时间: 2008-5-31 23:47

只需要二选一就可以了。
建议安全方面的工作交给安全软件去做,目前光靠浏览器是不行的。
作者: zsh127    时间: 2008-6-2 16:05

楼主辛苦了啊
作者: 9wis    时间: 2008-6-2 17:27

这段代码可能会引发163、126不能正常写信的问题?
http://bbs.ioage.com/cn/viewthre ... p;page=1&extra=
作者: lonre    时间: 2008-6-3 12:03

原帖由 9wis 于 2008-6-2 17:27 发表 http://bbs.ioage.com/cn/images/common/back.gif
这段代码可能会引发163、126不能正常写信的问题?
http://bbs.ioage.com/cn/viewthread.php?tid=59783&page=1&extra=


添加到白名单就好了
作者: konglingzi    时间: 2008-6-5 10:12

加密的看看有没效果
作者: sasan210    时间: 2008-6-8 14:24

这个规则对YS168网盘过滤太强,不能使用了
作者: china0777    时间: 2008-6-11 20:32

原帖由 xlez 于 2008-5-26 09:32 发表 http://bbs.ioage.com/cn/images/common/back.gif
以前有位高手写过过滤iframe病毒的代码,不过考虑的不全面,这里我写的一段代码更准确(考虑到style调用的样式及display:none),不过只对html内插入的iframe有效,对于js调用的iframe无效(因为用js可以任意写ifram ...



放到哪里??位置??怎么用?俺是菜鸟
作者: china0777    时间: 2008-6-27 19:56

第一:
#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>

第二:
#ex#<[\s]*?iframe[^>]*?\s(height|width)[\s]*?=[\s]*?(\x22|\x27)?[\s]*?\d{1}[\s]*?(\x22|\x27)?(?=\D)[^>]*?>(<\/iframe[\s]*?>)?###<p style="color: red;font-style:bold;">可疑链接已被安全规则过滤</p>


我该用哪个?还是两个都用?
作者: xlez    时间: 2008-7-1 10:12

作用是相同的,但第一个考虑的要周全一些,只用一个就可以了。
作者: laoshu925    时间: 2008-12-25 13:51

怎么显示出iframe里面的网址?
作者: china0777    时间: 2009-4-19 14:38

#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>

顶回楼主这代码··换了那么多好是这个好···不更新了吗?




欢迎光临 世界之窗论坛 (http://bbs.theworld.cn./) Powered by Discuz! 7.2