|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我有个同学,他是搞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>可怜的程序员,还是逃不出移植的命运! |
|