仓酷云

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
查看: 470|回复: 8
打印 上一主题 下一主题

[学习教程] ASP网页设计温顺的杀手―跨站ASP Script打击

[复制链接]
小妖女 该用户已被删除
跳转到指定楼层
楼主
发表于 2015-1-16 22:36:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
由于ASP提供的是一对多的服务,所以用户的一些特殊需求很难得到满足。BIBI  每当我们想到黑客的时分,黑客常常是如许一幅画像:一个伶仃的人,悄然进进他人的服务器中,举行损坏大概夺取他人的奥密材料。大概他会变动我们的主页,甚者会夺取客户的信誉卡号和暗码。别的,黑客还会打击会见我们网站的客户。与此同时,我们的服务器同样成了他的爪牙。微软称这类打击为“跨站script”打击。而这类打击年夜多半都产生在网站静态发生网页的时侯,但黑客的方针并非你的网站,而是扫瞄网站的客户。
  跨站script打击的申明
  在一本名为<<ADVISORYCA--2000-02>>的杂志中,CERT告诫人人:假如服务器对客户的输出不举行无效考证,黑客就会输出一些歹意的HTML代码,当这些HTML代码输出是用于SCRIPT程序,他们就可以使用它来举行损坏,如拔出一些使人讨厌的图片或声响等,同时,也无能扰了客户准确扫瞄网页。
  我们晓得,有些伴侣已经被引诱到一些可疑的收费网站,他们失掉的仅仅是10到20个小的窗口,这些窗口经常陪伴着由JAVA或JAVASCRIPT天生的生效安钮,这被称为鼠标圈套。封闭这些窗口是白费的,每当我们封闭一个窗口,又会有10几个窗口弹出。这类情形经常产生在办理员没在的时侯产生。鼠标事务是黑客使用跨站SCRIPT办法攻客户的典范典范。
  歹意的标签和SCRIPT不但纯的开玩笑,他们乃至能够夺取材料和摧毁体系。一个伶俐的乃至是不敷伶俐的黑客都可以利用SCRIPT搅扰大概改动服务器数据的输出。使用SCRIPT代码也能打击客户体系,让你的硬盘尽损。并且你要晓得,在你一边利用服务器的时分,黑客的SCRIPT也正在你服务器里平安的中央运转着的呀!假如客户对你的服务器十分信认,一样他们也会信托那些歹意的SCRIPT代码。乃至这个代码是以〈SCRIPT〉大概〈OBJECT〉的情势来自黑客的服务器。
  即便利用了防火墙(SSL)也不克不及避免跨站SCRIPT的打击。那是由于假如天生歹意SCRIPT代码的设备也利用了SSL,我们服务器的SSL是不克不及分辨出这些代码来的。我们岂非就如许把客户已经那末信托的网站拱手让给黑客吗?并且有这类损坏的存在,会让你网站信用尽损的。
  1、跨站SCRIPT打击示例:
  依据CERT的材料,静态输出大抵有这几种情势:URL参数,表格元素,COOKISE和数据哀求。让我们来剖析一下,这个只要两个页面的网站,网站名为:MYNICESITE.COM。第一页利用一张表格或COOKIE来猎取用户名:
  <%@Language=VBScript%>
  <%IfRequest.Cookies("userName")<>""Then
  DimstrRedirectUrl
  strRedirectUrl="page2.asp?userName="
  strRedirectUrl=strRedirectUrl&Response.Cookies("userName")
  Response.Redirect(strRedirectUrl)
  Else%>
  <HTML>
  <HEAD>
  <TITLE>MyNiceSite.comHomePage</TITLE>
  </HEAD>
  <BODY>
  <H2>MyNiceSite.com</H2>
  <FORMmethod="post"action="page2.asp">
  EnteryourMyNiceSite.comusername:
  <INPUTtype="text"name="userName">
  <INPUTtype="submit"name="submit"value="submit">
  </FORM>
  </BODY>
  </HTML>
  <%EndIf%>
  第二页前往用户名以示接待:
  <%@Language=VBScript%>
  <%DimstrUserName
  IfRequest.QueryString("userName")<>""Then
  strUserName=Request.QueryString("userName")
  Else
  Response.Cookies("userName")=Request.Form("userName")
  strUserName=Request.Form("userName")
  EndIf%>
  <HTML>
  <HEAD></HEAD>
  <BODY>
  <H3align="center">Hello:<%=strUserName%></H3>
  </BODY>
  </HTML>
  当你一般常输出笔墨时,统统都很一般。假如你输出Script代码:<SCRIPT>alert(Hello.;</script>,JavaScript告诫标签就会弹出来:
  在你下一次会见时,这个警示标签一样会呈现;这是由于这个Script代码在你第一次会见的时后就已留在cookie中了。这是一个复杂的跨站打击的典范。
  假如你以为这是一个特别情形,你也无妨到网上其余中央看看,亲身试一下。我已经对一些年夜型的当局网站、教导网站和贸易网站举行过测试,他们傍边切实其实有部分呈现了以上所说的情形,我乃至发明了我常常利用信誉卡的网站也竟然对输出不举行任何过滤,想一想真是可骇。
  每当我们想到黑客的时分,黑客常常是如许一幅画像:一个伶仃的人,悄然进进他人的服务器中,举行损坏大概夺取他人的奥密材料。大概他会变动我们的主页,甚者会夺取客户的信誉卡号和暗码。别的,黑客还会打击会见我们网站的客户。与此同时,我们的服务器同样成了他的爪牙。微软称这类打击为“跨站script”打击。而这类打击年夜多半都产生在网站静态发生网页的时侯,但黑客的方针并非你的网站,而是扫瞄网站的客户。
  跨站script打击的申明
  在一本名为<<ADVISORYCA--2000-02>>的杂志中,CERT告诫人人:假如服务器对客户的输出不举行无效考证,黑客就会输出一些歹意的HTML代码,当这些HTML代码输出是用于SCRIPT程序,他们就可以使用它来举行损坏,如拔出一些使人讨厌的图片或声响等,同时,也无能扰了客户准确扫瞄网页。
  我们晓得,有些伴侣已经被引诱到一些可疑的收费网站,他们失掉的仅仅是10到20个小的窗口,这些窗口经常陪伴着由JAVA或JAVASCRIPT天生的生效安钮,这被称为鼠标圈套。封闭这些窗口是白费的,每当我们封闭一个窗口,又会有10几个窗口弹出。这类情形经常产生在办理员没在的时侯产生。鼠标事务是黑客使用跨站SCRIPT办法攻客户的典范典范。
  歹意的标签和SCRIPT不但纯的开玩笑,他们乃至能够夺取材料和摧毁体系。一个伶俐的乃至是不敷伶俐的黑客都可以利用SCRIPT搅扰大概改动服务器数据的输出。使用SCRIPT代码也能打击客户体系,让你的硬盘尽损。并且你要晓得,在你一边利用服务器的时分,黑客的SCRIPT也正在你服务器里平安的中央运转着的呀!假如客户对你的服务器十分信认,一样他们也会信托那些歹意的SCRIPT代码。乃至这个代码是以〈SCRIPT〉大概〈OBJECT〉的情势来自黑客的服务器。
  即便利用了防火墙(SSL)也不克不及避免跨站SCRIPT的打击。那是由于假如天生歹意SCRIPT代码的设备也利用了SSL,我们服务器的SSL是不克不及分辨出这些代码来的。我们岂非就如许把客户已经那末信托的网站拱手让给黑客吗?并且有这类损坏的存在,会让你网站信用尽损的。
  1、跨站SCRIPT打击示例:
  依据CERT的材料,静态输出大抵有这几种情势:URL参数,表格元素,COOKISE和数据哀求。让我们来剖析一下,这个只要两个页面的网站,网站名为:MYNICESITE.COM。第一页利用一张表格或COOKIE来猎取用户名:
<%@Language=VBScript%>
<%IfRequest.Cookies("userName")<>""Then
DimstrRedirectUrl
strRedirectUrl="page2.asp?userName="
strRedirectUrl=strRedirectUrl&Response.Cookies("userName")
Response.Redirect(strRedirectUrl)
Else%>
<HTML>
<HEAD>
<TITLE>MyNiceSite.comHomePage</TITLE>
</HEAD>
<BODY>
<H2>MyNiceSite.com</H2>
<FORMmethod="post"action="page2.asp">
EnteryourMyNiceSite.comusername:
<INPUTtype="text"name="userName">
<INPUTtype="submit"name="submit"value="submit">
</FORM>
</BODY>
</HTML>
<%EndIf%>
  第二页前往用户名以示接待:
<%@Language=VBScript%>
<%DimstrUserName
IfRequest.QueryString("userName")<>""Then
strUserName=Request.QueryString("userName")
Else
Response.Cookies("userName")=Request.Form("userName")
strUserName=Request.Form("userName")
EndIf%>
<HTML>
<HEAD></HEAD>
<BODY>
<H3align="center">Hello:<%=strUserName%></H3>
</BODY>
</HTML>
  当你一般常输出笔墨时,统统都很一般。假如你输出Script代码:<SCRIPT>alert(Hello.;</script>,JavaScript告诫标签就会弹出来:
  在你下一次会见时,这个警示标签一样会呈现;这是由于这个Script代码在你第一次会见的时后就已留在cookie中了。这是一个复杂的跨站打击的典范。
  假如你以为这是一个特别情形,你也无妨到网上其余中央看看,亲身试一下。我已经对一些年夜型的当局网站、教导网站和贸易网站举行过测试,他们傍边切实其实有部分呈现了以上所说的情形,我乃至发明了我常常利用信誉卡的网站也竟然对输出不举行任何过滤,想一想真是可骇。
  第二部分:跨站Script打击的防犯

  1、怎样制止服务器遭到跨站Script的打击
  值得光荣的是,避免跨站Script打击的手艺正趋于完美。今朝可接纳这几种体例来避免跨站Script的打击:
  1.对静态天生的页面的字符举行编码
  你们起首要接纳的就是对静态天生页面的字符举行编码,你必需如许做,否则黑客很有大概变动你的字符设置而容易地经由过程你的防地。假如我们的网站是个英语网站,如许只需我们把字符编码设成拉丁字符ISO-8859-1就好了,详细情形以下:
<METAhttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
  2.过滤和限定一切输出的数据
  这是避免跨站Script的打击的第二种办法,在举行登录的时侯,不要让那些特别的字符也输出出来。因而我们可在ONSUBMIT办法中到场JAVASCRIPT程序来完成这个功效。在本例中我们限定最多只能输出15个字符。如许能够制止那些较长的script的输出。
  在<<KnowledgeBaseArticleQA252985>>这本书中微软供应了一个冗长的Javascript程序来完成对输出数据的过滤。我们也依据详细情形引进了这段代码用于我们的例子中,如:
functioncheckForm(){
document.forms[0].userName.value=_
RemoveBad(document.forms[0].userName.value);
returntrue;
}
//MICROSOFTSCODE
functionRemoveBad(strTemp){
strTemp=strTemp.replace(/</>/"//%/;/(/)/&/+/-/g,"");
returnstrTemp;
}
用这个举措,能够过滤在输出中含有的这些字符:
%<>[]{};&+-"()
  3.利用HTML和URL编码
  只管利用下面所说的过滤和限定输出的举措是一种十分主要用进攻手腕,但它对我的这类接纳邮件体例的打击仍是力所不及。由于我把URL的参数间接放在邮件中。针对这类情形我们不能不接纳一种更无力的平安措施。假如我们用的ASP,办理起来绝对说来要简单很多。只需对静态天生的网页总举行HTML和URL编码就好了。针对我们例子中的情形,在第一输出页中我们对redirectURL作了以下修改:
strRedirectUrl=strRedirectUrl&_
server.URLEncode(Response.Cookies("userName"))
  在实行页中我们到场:
strUserName=server.HTMLEncode(Request.QueryString("userName"))

strUserName=server.HTMLEncode(Request.Form("userName"))
  微软保举对一切静态页面的输出和输入都应举行编码。乃至在对数据库数据的存进和掏出也应云云。如许你就可以在很年夜水平上制止跨站script的打击。
  要做到这些还要在Page1.asp中到场:
<%@Language=VBScript%>

<%IfRequest.Cookies("userName")<>""Then

redirectifdetectthecookie
DimstrRedirectUrl
strRedirectUrl="page2.asp?userName="
strRedirectUrl=strRedirectUrl&_
server.URLEncode(Request.Cookies("userName"))
Response.Redirect(strRedirectUrl)

Else%>
<HTML>
<HEAD>
<METAhttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
<TITLE>MyNiceSite.comHomePage</TITLE>
</HEAD>
<scriptLANGUAGE="javascript">
<!--
functioncheckForm(){
document.forms[0].userName.value=
RemoveBad(document.forms[0].userName.value);
returntrue;
}

//******************************************************
//Programmer:NOTORIGINALCODE-COMESFROMMICROSOFT
//CodeSource:MicrosoftKnowledgeBaseArticleQ25z985
//Description:Removesbadcharacters.
//******************************************************

functionRemoveBad(strTemp){
strTemp=strTemp.replace(/</>/"//%/;/(/)/&/+/-/g,"");
returnstrTemp;
}
//-->
</SCRIPT>
<BODY>
<BR>
<H2>MyNiceSite.com</H2>
<BR>
<FORMmethod="post"action="page2.asp">
EnteryourMyNiceSite.comusername:
<INPUTtype="text"name="userName"width="10"maxwidth="10">
<INPUTtype="submit"name="submit"value="submit">
</FORM>
</BODY>
</HTML>
<%endif%>
Page2.asp中加如:

<%@Language=VBScript%>
<%DimstrUserName
IfRequest.QueryString("userName")<>""Then
strUserName=server.HTMLEncode(Request.QueryString("userName"))
Else
Response.Cookies("userName")=Request.Form("userName")
strUserName=server.HTMLEncode(Request.Form("userName"))
EndIf%>
<HTML>
<HEAD>
<METAhttp-equiv="Content-Type"content="text/html;charset=ISO-8859-1">
</HEAD>
<BODY>
<H3align="center">Hello:<%=strUserName%></H3>
</BODY>
</HTML>
  如今因为这类打击遭到无效的防制。那于那些歹意的标签和Script被编码,他们就被以笔墨的情势展现了出来,以下图:
  我们也可增添一个IIS组件用于过滤一切从静态输出中的特别字符。关于那些已做好的网站,接纳这类举措来避免跨站script的打击来得十分简单。我们的这个控件能拦阻来自ASP页面的REQUEST方针,可对表格,cookie,哀求字串和程序的内容举行检测:

  我们也能够经由过程编写log文件的办法把统计数据到场这个组件中。每当一个客户输出一个不法字符时,这个组件会记下它的IP地点和工夫。概况请见DougDean的<<RollyourOwnIISApplicationonASPToday>>一文。
  我们只需接纳一些复杂的步聚就可以无效地制止跨站script的打击。除以上所说的三种办法外,微软和CERT还激烈保举利用一种他们称之为“sanitycheck”的办法。比方,假定有个输出窗口只同意输出数字,我们就给它做个限制,只同意0-9数字的输出。微软和CERT所接纳的这类对输出的字符举行限制的举措要比独自的接纳过滤特别字符要好很多。接纳了这些措施后你就可以让那些观光你网站的客户在会见你网站时遭到回护。
  2、免受黑客打击我们扫瞄器办法:
  当你在网上周游的时侯,如何来制止遭到打击呢?微软和CERT倡议不要在网上胡碰乱闯。针对这类情形,PC杂志一个栏目标名叫JohnDvorack作者作了一个饶有乐趣的回覆。他以为这是微软公司一同有预谋的举动:就是用来吓唬网上冲浪的人到那些平安的站点往扫瞄,如美国在线和MSN.com网站。
  在我们所举的例子中,即便你不在网上胡乱浪荡,也不克不及制止在网上遭到黑客的打击。具有取笑意义的是,年夜多半的伤害都来自于我们最信托的网站。假如要让网站必定不出成绩,你只好不下载任何静态内容大概任何cookie。预知概况请参阅扫瞄器的相干材料。
  微软也告诫你们应把扫瞄器的ActiveScript设置成严厉限定的形态并把Email也设成严厉限定的吸收形式。在点击邮件中的链接时,必定要当心。如需进一步懂得情形请参阅一本名叫<<MicrosoftsKnowledgeBaseArticleQ253117>>的书。为了以防万一,你最好是多一点上彀履历,而且时候要胆小如鼠。
  结论
  假如你是之前的UNIX程序开辟职员,你大概不会晓得跨站script意谓着甚么。你晓得很多站点的办理职员登录的用户名和暗码分离为root,root.一样很多数据库办理员的称号和暗码分离为sa,password。你也晓得Webzine(如Phrack和Alt2600),根据他们所供应的办法能让你一步步地晓得某台服务器的缺点。在这类硬件上,你也晓得很多网站的数据库服务器和web服务器都没有举行自我回护。一但遭受黑客,呆板就得瘫痪。
  只管我们很简单接纳避免体系遭到黑客的打击的措施,但我们的体系是一向表露在黑客眼前的。我们完整有来由信任下一年还会呈现一些新的平安毛病。在CERT公司JohnHoward师长教师引导下完成的一篇论文中曾提到:“跟据今朝的研讨显现,每一个在英特网上具有域名的网站均匀一年被黑客最少打击一次。”
  对服务器来讲那怕只是一次这类打击也是不克不及接受的。跨站Script打击是黑客可接纳的另外一种办法。但我们只需举行以上所说的一些复杂的处置就可以避免这类情势打击的产生。
asp,你就只能等着微软给你解决,它不乐意你就只好悲催。而且asp跑在windows服务器上,windows服务器跟linux比起来简直弱爆了!
变相怪杰 该用户已被删除
沙发
发表于 2015-1-17 18:16:56 | 只看该作者
那么,ASP.Net有哪些改进呢?
小女巫 该用户已被删除
板凳
发表于 2015-1-21 07:13:28 | 只看该作者
以上是语言本身的弱点,在功能方面ASP同样存在问题,第一是功能太弱,一些底层操作只能通过组件来完成,在这点上是远远比不上PHP/JSP,其次就是缺乏完善的纠错/调试功能,这点上ASP/PHP/JSP差不多。
冷月葬花魂 该用户已被删除
地板
发表于 2015-1-30 10:49:35 | 只看该作者
ASP也是这几种脚本语言中最简单易学的开发语言。但ASP也是这几种语言中唯一的一个不能很好支持跨平台的语言。  因为ASP脚本语言非常简单,因此其代码也简单易懂,结合HTML代码,可快速地完成网站的应用程序。
因胸联盟 该用户已被删除
5#
发表于 2015-2-6 10:13:53 | 只看该作者
运用经典的例子。并且自己可以用他来实现一些简单的系统。如果可以对他进行进一步的修改,找出你觉得可以提高性能的地方,加上自己的设计,那就更上一个层次了,也就会真正地感到有所收获。
admin 该用户已被删除
6#
发表于 2015-2-15 23:10:03 | 只看该作者
我就感觉到ASP和一些常用的数据库编程以及软件工程方面的思想是非常重要的。我现在也在尝试自己做网页,这其中就用到了ASP,我想它的作用是可想而知的。
简单生活 该用户已被删除
7#
发表于 2015-3-4 18:01:53 | 只看该作者
没有坚实的理论做基础,那么我们连踏入社会第一步的资本都没有,特别对于计算机专业的学生学好专业知识是置关重要的。在这里我侧重讲一下如何学习ASP,从平时的学习过程中。
深爱那片海 该用户已被删除
8#
发表于 2015-3-11 20:33:37 | 只看该作者
多看多学多思。多看一些关于ASP的书籍,一方面可以扩展知识面一方面可以鉴借别人是如何掌握、运用ASP的;多学善于关注别人,向同学老师多多学习,不论知识的大小;多思则是要将学到的知识灵活运用。
灵魂腐蚀 该用户已被删除
9#
发表于 2015-3-19 11:57:12 | 只看该作者
虽然ASP也有很多网络教程。但是这些都不系统。都是半路出家,只是从一个例子告诉你怎么用。不会深入讨论,更不会将没有出现在例子里的方法都一一列举出来。
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|仓酷云 鄂ICP备14007578号-2

GMT+8, 2024-6-17 17:10

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表