ASP.NET网站制作之黑客教你 Net程序怎样避免被注进
C#中有两处地方用到new关键字,第一处也是最常见的一处是用在调用构造函数的时候,这种情况也是大家见的最多的一种。另一处是用在派生类中,作用有隐藏成员,切断继承关系等,相信第二处的用法大家明显要比第一处生疏。程序<Pstyle="TEXT-INDENT:2em">避免Sql注进,一般一个一个文件修正不但贫苦并且另有遗漏的伤害,上面我说一上怎样从全部体系避免注进。<Pstyle="TEXT-INDENT:2em">做到以下三步,信任的程序将会对照平安了,并且对全部网站的保护也将会变的复杂。<Pstyle="TEXT-INDENT:2em">1、数据考证类<Pstyle="TEXT-INDENT:2em">parameterCheck.cspublicclassparameterCheck{publicstaticboolisEmail(stringemailString){returnSystem.Text.RegularExpressions.Regex.IsMatch(emailString,"+(.+)*@+(.+)*.{2,4}");}publicstaticboolisInt(stringintString){returnSystem.Text.RegularExpressions.Regex.IsMatch(intString,"^(d{5}-d{4})|(d{5})$");}publicstaticboolisUSZip(stringzipString){returnSystem.Text.RegularExpressions.Regex.IsMatch(zipString,"^-+$|^+$");}}<Pstyle="TEXT-INDENT:2em">2、Web.config<Pstyle="TEXT-INDENT:2em">在你的Web.config文件中,鄙人面增添一个标签,以下:<Pstyle="TEXT-INDENT:2em"><appSettings><addkey="safeParameters"value="OrderID-int32,CustomerEmail-email,ShippingZipcode-USzip"/></appSettings><Pstyle="TEXT-INDENT:2em">个中key是前面的值为“OrderId-int32”等,个中“-”后面暗示参数的称号好比:OrderId,前面的int32暗示数据范例。<Pstyle="TEXT-INDENT:2em">3、Global.asax<Pstyle="TEXT-INDENT:2em">在Global.asax中增添上面一段:<Pstyle="TEXT-INDENT:2em">protectedvoidApplication_BeginRequest(Objectsender,EventArgse){String[]safeParameters=System.Configuration.ConfigurationSettings.AppSettings["safeParameters"].ToString().Split(,);for(inti=0;i<safeParameters.Length;i++){StringparameterName=safeParameters.Split(-);StringparameterType=safeParameters.Split(-);isValidParameter(parameterName,parameterType);}}publicvoidisValidParameter(stringparameterName,stringparameterType){stringparameterValue=Request.QueryString;if(parameterValue==null)return;if(parameterType.Equals("int32")){if(!parameterCheck.isInt(parameterValue))Response.Redirect("parameterError.aspx");}elseif(parameterType.Equals("double")){if(!parameterCheck.isDouble(parameterValue))Response.Redirect("parameterError.aspx");}elseif(parameterType.Equals("USzip")){if(!parameterCheck.isUSZip(parameterValue))Response.Redirect("parameterError.aspx");}elseif(parameterType.Equals("email")){if(!parameterCheck.isEmail(parameterValue))Response.Redirect("parameterError.aspx");}}今后必要修正的时分我们只必要修正以上三个文件,对全部体系的保护将会年夜年夜进步效力,固然你能够依据本人的必要增添别的的变量参数和数据范例。在经过全球个人PC市场占有90%的微软对asp.net不断优化与整合后,asp.net与微软自身平台的动用上更加的高效,加上asp.net在应用上非常容易上手,相信asp.net仍会是最多客户选用的脚本语言,并会在未来几年继续领跑。 asp.net最主要特性包括:◆编程代码更简洁◆网站可实现的功能更强大◆运行效率高◆节省服务器的动作资源 以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。 最强的技术支持WebService,而且有.NET的所有library做后盾。而且ASP.NET在.NET3.5中还有微软专门为AJAX开发的功能--ASP.NETAJAX。 提供基于组件、事件驱动的可编程网络表单,大大简化了编程。还可以用ASP.NET建立网络服务。 CGI程序在运行的时候,首先是客户向服务器上的CGI程序发送一个请求,服务器接收到客户的请求后,就会打开一个新的Process(进程)来执行CGI程序,处理客户的请求。CGI程序最后将执行的结果(HTML页面代码)传回给客户。 目前在微软的.net战略中新推出的ASP.net借鉴了Java技术的优点,使用CSharp(C#)语言作为ASP.net的推荐语言,同时改进了以前ASP的安全性差等缺点。但是,使用ASP/ASP.net仍有一定的局限性,因为从某种角度来说它们只能在微软的WindowsNT/2000/XP+IIS的服务器平台上良好运行(虽然像ChilliSoft提供了在UNIX/Linux上运行ASP的解决方案. 代码逻辑混乱,难于管理:由于ASP是脚本语言混合html编程,所以你很难看清代码的逻辑关系,并且随着程序的复杂性增加,使得代码的管理十分困难,甚至超出一个程序员所能达到的管理能力,从而造成出错或这样那样的问题。 现在主流的网站开发语言无外乎asp、php、asp.net、jsp等。
页:
[1]