若天明 发表于 2015-1-16 22:43:47

ASP.NET网站制作之用正则表达式过滤剧本的研讨(ASP.net)...

不可能天天有学习.net),我一同学说,你应该早就有作品啦。我惶惶然……asp.net|剧本|正则在做一些网站(出格是BBS之类)时,常常会有充许用户输出html款式代码,却克制剧本的运转的需求,以到达丰厚网页款式,克制歹意代码的运转。
固然不克不及用HtmlEncode和HtmlDecode办法,由于如许连基础的html代码会被克制失落。

我在网上搜刮,也没有找到好的办理举措,却是搜集了一些剧本打击的实例:

1.<script>标志中包括的代码
2.<ahref=javascript:...中的代码
3.别的基础控件的on...事务中的代码
4.iframe和frameset中载进别的页面酿成的打击

有了这些材料后,事变就复杂多了,写一个复杂的办法,用正则表达式把以上切合几点的代码交换失落:
publicstringwipeScript(stringhtml)
{
System.Text.RegularExpressions.Regexregex1=newSystem.Text.RegularExpressions.Regex(@"<script+</script*>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regexregex2=newSystem.Text.RegularExpressions.Regex(@"href*=**script*:",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regexregex3=newSystem.Text.RegularExpressions.Regex(@"on*=",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regexregex4=newSystem.Text.RegularExpressions.Regex(@"<iframe+</iframe*>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
System.Text.RegularExpressions.Regexregex5=newSystem.Text.RegularExpressions.Regex(@"<frameset+</frameset*>",System.Text.RegularExpressions.RegexOptions.IgnoreCase);
html=regex1.Replace(html,"");//过滤<script></script>标志
html=regex2.Replace(html,"");//过滤href=javascript:(<A>)属性
html=regex3.Replace(html,"_disibledevent=");//过滤别的控件的on...事务
html=regex4.Replace(html,"");//过滤iframe
html=regex5.Replace(html,"");//过滤frameset
returnhtml;
}

  此办法输出大概包括剧本的html代码,前往则就是洁净的代码了。我做过一些复杂的测试,能够满中请求,只是还存在几个疑问:
  以上考滤的情形是不是对照完美,还存在别的的剧本打击手腕吗?是不是会有别的更好的办理举措?
在VC.net的版本上,为了让C++运行在.NETFramework中,微软为C++引进了托管,就是托管C++(ManagedC++),这个根本就没有流行起来,自托管C++产生以后就没有收到过好评。

海妖 发表于 2015-1-19 21:48:03

提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。

冷月葬花魂 发表于 2015-1-25 21:31:35

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

莫相离 发表于 2015-2-4 03:00:25

JSP/Servlet虽然在国内目前的应用并不广泛,但是其前途不可限量。

admin 发表于 2015-2-9 12:32:34

ASP是把代码交给VBScript解释器或Jscript解释器来解释,当然速度没有编译过的程序快了。

小魔女 发表于 2015-2-27 06:19:18

ASP.Net和ASP的最大区别在于编程思维的转换,而不仅仅在于功能的增强。ASP使用VBS/JS这样的脚本语言混合html来编程,而那些脚本语言属于弱类型、面向结构的编程语言,而非面向对象。

精灵巫婆 发表于 2015-3-8 22:51:27

当然我们在选择Asp.net主机是,除了要考虑服务提供商在版本是否是实时更新以外,机房的环境和配置也是非常重要的,通常选择骨干网的机房,在速度和稳定性上会非常有保证。

柔情似水 发表于 2015-3-16 17:06:14

主流网站开发语言之ASP:ASP是微软(Microsoft)所开发的一种后台脚本语言,它的语法和VisualBASIC类似,可以像SSI(ServerSideInclude)那样把后台脚本代码内嵌到HTML页面中。虽然ASP简单易用,但是它自身存在着许多缺陷,最重要的就是安全性问题。

乐观 发表于 2015-3-22 23:50:25

目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案.
页: [1]
查看完整版本: ASP.NET网站制作之用正则表达式过滤剧本的研讨(ASP.net)...