第二个灵魂 发表于 2015-1-16 22:21:04

ASP.NET网页设计ASP.NET优化:Sql注进和Html注进的黑帽S...

我有个同学,他是搞Java的,他给我说“Java不是效率低,而是速度慢。”,我不是搞Java的,我实在想不透这句话的含义,难道执行速度不就是效率低吗?难道执行速度慢还成效率高了?</p>黑帽(blackhat)SEO次要是指接纳“不怎样品德”(临时就这么描述吧!)的体例举行seo。
1.注进打击,包含Sql注进和Html注进。我常常能看到对Sql注进提防的议论,但关于Html注进,良多人并没有引发充足的器重。为了展现Html注进的效果,我们仿照了一个罕见的留言本功效。
起首,在页面声明中增加两个属性设置EnableEventValidation=“false”ValidateRequest=“false”,这很关头,读者能够试一下假如不如许设置会有甚么效果。
<%@PageLanguage="C#"AutoEventWireup="true"CodeFile="Default.aspx.cs"Inherits="_Default"EnableEventValidation="false"ValidateRequest="false"%>
然后,前台页面和背景代码段分离以下:
<asp:TextBoxID="txtInput"runat="server"Height="95px"Width="405px"TextMode="MultiLine"></asp:TextBox>
<asp:ButtonID="btnSubmit"runat="server"Text="SimpleSubmit"
onclick="btnSubmit_Click"/>
<asp:LabelID="lblShow"runat="server"></asp:Label>
protectedvoidbtnSubmit_Click(objectsender,EventArgse)
{
this.lblShow.Text=this.txtInput.Text;
}
程序很复杂,将用户输出的内容再显现出来罢了。运转代码,然后输出我们的歹意代码,提交。
<p>Sanitizing!</p></span>
收拾后,我们发明以下的映照转换:
<--<(lessthan)
>-->(greaterthan)
"--"(quota)
以是js没法实行,但在页面显现时,我们确能看到“原汁原味”的js内容。
但成绩并没有停止,实际天下中,输出的内容除歹意代码之外,还大概有以下的内容:
<spanstyle="color:blue">黑帽</span>(blackhat)SEO次要是指接纳<spanstyle="color:blue">“不怎样品德”</span>(临时就这么描述吧!)的体例举行seo。
我们但愿显现蓝色的笔墨,但经由编码后,明显没法到达我们的效果。为此,我们还必要举行更准确的过滤。这也是为何之前我们要设置EnableEventValidation=“false”ValidateRequest=“false”的实际缘故原由。
实在我开始想到的计划是:起首对全部内容举行编码,然后把我们同意利用的html标签再交换返来。如许是相称保险的,可是在详细的操纵中,碰到了良多成绩,这个忧郁啊~~~(假如有谁有这类完成的完成代码,万万要拿出来人人分享一下呀)。
我先先容另外一种计划:
起首要掏出标签,如,<spanstyle=“color:blue”>、</span>和<script>,我们的交换局限仅范围于标签之间的内容。
然后猎取一切的标署名称、属性的称号和值,假如有克制呈现的内容,就交换失落。大概的歹意代码情势以下所示:
标签的称号:<script</script
标签里的属性:<spanonclick
属性的值:<imgonerror=“javascript:
<p>可怜的程序员,还是逃不出移植的命运!

不帅 发表于 2015-1-17 21:51:36

我的意思是.net好用,从功能上来说比JAVA强还是很明显的。

小魔女 发表于 2015-1-21 10:12:27

平台无关性是PHP的最大优点,但是在优点的背后,还是有一些小小的缺点的。如果在PHP中不使用ODBC,而用其自带的数据库函数(这样的效率要比使用ODBC高)来连接数据库的话,使用不同的数据库,PHP的函数名不能统一。这样,使得程序的移植变得有些麻烦。不过,作为目前应用最为广泛的一种后台语言,PHP的优点还是异常明显的。

精灵巫婆 发表于 2015-1-30 14:39:34

弱类型造成潜在的出错可能:尽管弱数据类型的编程语言使用起来回方便一些,但相对于它所造成的出错几率是远远得不偿失的。

只想知道 发表于 2015-2-6 13:27:35

但是目前在CGI中使用的最为广泛的是Perl语言。所以,狭义上所指的CGI程序一般都是指Perl程序,一般CGI程序的后缀都是.pl或者.cgi。

谁可相欹 发表于 2015-2-16 07:07:16

ASP(ActiveServerPages)是Microsfot公司1996年11月推出的WEB应用程序开发技术,它既不是一种程序语言,也不是一种开发工具,而是一种技术框架,不须使用微软的产品就能编写它的代码。

老尸 发表于 2015-3-5 00:54:14

Servlet的形式和前面讲的CGI差不多,它是HTML代码和后台程序分开的。它们的启动原理也差不多,都是服务器接到客户端的请求后,进行应答。不同的是,CGI对每个客户请求都打开一个进程(Process)。

柔情似水 发表于 2015-3-11 22:04:50

比如封装性、继承性、多态性等等,这就解决了刚才谈到的ASP的那些弱点。封装性使得代码逻辑清晰,易于管理,并且应用到ASP.Net上就可以使业务逻辑和Html页面分离,这样无论页面原型如何改变。

变相怪杰 发表于 2015-3-19 15:06:45

业务逻辑代码都不必做任何改动;继承性和多态性使得代码的可重用性大大提高,你可以通过继承已有的对象最大限度保护你以前的投资。并且C#和C++、Java一样提供了完善的调试/纠错体系。

简单生活 发表于 2015-3-28 18:56:02

Asp.net:首先来说,Asp.net和Asp没什么关系,看着像是升级版本什么的,其实没什么联系。Asp是脚本编程,用的是ASP语言,而ASP.net用的是C#语言,完全不同的东西。
页: [1]
查看完整版本: ASP.NET网页设计ASP.NET优化:Sql注进和Html注进的黑帽S...