|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
实现规模效益。与传统的用户拥有硬件软件所有权和使用权以及传统的应用服务商提供一对一的服务模式不同,ASP拥有应用系统所有权,用户拥有使用权,应用系统集中放在ASP的数据中心中,集中管理,分散使用,以一对多的租赁的形式为众多用户提供有品质保证的应用技术服务,实现规模效益。1、打击道理
Cookies棍骗次要使用以后收集上一些用户办理体系将用户登录信息贮存在Cookies中这一不平安的做法举行打击,其打击办法相对SQL注进毛病等毛病来讲绝对要“坚苦”一些,但仍是很“傻瓜”。
我们晓得,一样平常的基于Cookies的用户体系最少会在Cookies中贮存两个变量:username和userlevel,个中username为用户名,而userlevel为用户的品级。当我们的扫瞄器会见ASP页面时,它会传出相似
以下为援用的内容:
GET/.../file.aspHTTP1.0
...
Cookies:username=user&userlevel=1
...
的数据包,那末,我们只需晓得了办理员的username和userlevel值(假定分离为admin和5),即可以经由过程传输
GET/.../file.aspHTTP1.0
...
Cookies:username=admin&userlevel=5
...
来猎取办理员权限。很复杂是否是?但是,在这个毛病被发明之前,几近一切的用户办理体系都依附于Cookies。
2、平安地贮存用户信息
既然Cookies是不平安的,而我们又必需把用户登录信息存储上去,那末应当存储在甚么中央呢?
我们注重到,在ASP中,除Cookies外,另有Session能够贮存信息。Session是贮存在服务器上的,不是客户端马马虎虎就可以够变动的,以是具有极高的平安性。如许,人人就能够把一切Cookies的代码均换作session了。
3、长工夫贮存用户信息
接纳Session来保留用户登录信息,固然挣脱了Cookies棍骗的成绩,可是Session不克不及临时贮存(IIS默许Session在用户中断呼应20分钟后生效),因而发生了这一节所述的Cookies+session夹杂存储法。
这一办法有两个变种,第一种是在Cookies中贮存用户名和暗码,当用户会见一个页面时,先读取Session,假如有内容则以Session为准,不然读取Cookies,依照Cookies中供应的用户名和暗码举行“不通明”的登录一次,用以判别Cookies中的内容是不是正当,若正当再进而存进session中。完成这一办法的代码以下:
以下为援用的内容:
VBs:
<%
Dimusername,password
username=session("username")
ifusername=""then
session中没有效户登录信息
username=Request.Cookies("username")
password=Request.Cookies("password")
注重下面的两句失掉的username和password要举行SQL注进毛病的提防(即过滤失落单引号“”),这里略往
ifusername=""orpassword=""then
用户没有登录
...
else
这里假定已创立了conn和rs工具
rs.Open"SELECTTOP1*FROM[user]WHEREusername="&username&"ANDpassword="&password&"",conn,1,3
ifrs.eofthen
Cookies中的信息不法
...
else
Cookies中的信息正当,主动登录
session("username")=username
...
endif
endif
else
用户信息已存在于session中,间接读取
...
endif
%>
js:
<%
varusername,password;
username=session("username")+"";
if(username==""||username=="undefined"){
//session中没有效户信息
username=Request.Cookies("username")+"";
password=Request.Cookies("password")+"";
//注重下面的两句失掉的username和password要举行SQL注进毛病的提防(即过滤失落单引号“”),这里略往
if(username==""||username=="undefined"||password==""||password=="undefined"){
//用户没有登录
...
}
else{
//这里假定已创立了conn和rs工具
rs.Open("SELECTTOP1*FROM[user]WHEREusername="+username+"ANDpassword="+password+"",conn,1,3);
if(rs.eof){
//Cookies中的信息不法
...
}
else{
//Cookies中的信息正当,主动登录
session("username")=username+"";
...
}
}
}
else{
//用户信息已存在于session中,间接读取
...
}
%>
可是这类办法关于用户来讲又不太平安,缘故原由是扫瞄器每次会见页面时城市把Cookies传输已往,而包括暗码的Cookies一旦被别人猎取将招致用户帐号被盗。关于这类情形,又呈现了第二种办法,即在用户信息数据库中增添一个字段“verifycode”,在用户登录时,随机发生一个长整型校验值存进verifycode字段,而且将username和这个verifycode值而不是password存进Cookies。而在考证Cookies中的用户信息时,也只考证username和verifycode。这类办法的优点在于,即便用户的Cookies被黑客猎取,他也只能使用这个“一时”发生的verifycode登录,而没法取得用户的暗码。只需此用户再一次利用用户名和暗码登录,这个verifycode值便会改动,黑客便没法经由过程本来的verifycode登进。
这类办法的完成只必要在上述办法一的代码上略加修改。起首,在您的登录程序中,在考证经由过程存储用户信息的中央必要加上一段:
以下为援用的内容:
VBs:
<%
Response.Cookies("verifycode")=int(rnd*2100000000)
%>
js:
<%
Response.Cookies("verifycode")=Math.floor(Math.random()*2100000000);
%>
然后,在下面供应的考证代码中把对Cookies("password")的考证改成对Cookies("verifycode")的考证便可。
4、结论
经由过程我们的剖析和处置,Cookies棍骗毛病已被完整办理,今后,我们的ASP程序变得加倍平安了。
结论:和PHP一样,ASP简单而易于维护,很适合小型网站应用,通过DCOM和MTS技术,ASP甚至还可以完成小规模的企业应用,但ASP的致命缺点就是不支持跨平台的系统,在大型项目开发和维护上非常困难。 |
|