2009
12/12
23:50
你的位置:msn.com > ASP教程 > 只要队名------ASP登录程序易犯的域名辨析错误

只要队名------ASP登录程序易犯的域名辨析错误

发布时间:2009-12-12 23:50:00

原标题:只要队名------ASP登录程序易犯的域名辨析错误

  在研究Microsoft Site Server的示例项目vcturbo的XT_SHOPPER_LOOKUP.ASP程序时,发觉如下句子: 
sql = "select shopper_id from vcturbo_shopper where email = '" & Replace(shopper_email, "'", "''") & "' and password = '" & Replace(shopper_password, "'", "''" & "'") & "'" 

  该sql句子就是交到给孵卵器展开租户队名和暗号大全检察的sql句子,队名就是储户的E-Mail,在 
定量shopper_email中,暗号大全在定量shopper-password中. 

  我发觉,总有如下调用:Replace(shopper_email, "'", "''"),Replace(shopper_password, "'", "''" & "'")。其一作用是将入口的队名和暗号大全中的“'”符号改为“''”,干吗呢?倘然不改。排遣Replace(shopper_email, "'", "''"),径直用shopper_email交替会哪些呢? 

  归因于,在从前的程序中,虎虎接二连三使用如下句子判明储户的合法性的: 
  "select count(*) as num from UserTable where User='" + UserInput + "' and password='" + PwdInput + "'" 判明回来的记录集中的num字段可不可以大于0,倘然大于0,则示意存在该储户。否则炫耀登录失败信息。 
   
  倘然排遣Replace(shopper_email, "'", "''"),径直用shopper_email交替,倘然储户入口“user'”,暗号大全入口“pwd”,那么sql句子就化作了: select shopper_id from vcturbo_shopper where email = 'user'' and password='pwd' 

  显然。交到给SQL Server后,会回来域名辨析错误,但倘然队名入口"user'--"。暗号大全入口“pwd”呢?, 
那么sql句子就化作了:   select shopper_id from vcturbo_shopper where email = 'user'--' and password='pwd' 

SQL Server成功执行,回来找回了储户user,归因于特殊字符“--”对此SQL Server以来,示意 
该句子了结了,末端的内容为javascript注释。为此。不用入口暗号大全,也手机能登两个微信吗录了。 

  接近的问题还存在,如队名入口一度存在的队名,暗号大全入口:“1' OR 1='1 ”。。。 
  解决的了局很一定量,使用Microsoft Site Server的那种Replace(shopper_password, "'", "''" & "'")就可以,倘然考虑更是安全,可以过滤掉跟多的特殊字符,如:',",--,-,%,#,@,&,*,),(, :,?,/,\,!,+,|,这些特殊字符都兼具特殊的旅行的意义。
 

原标题:只要队名------ASP登录程序易犯的域名辨析错误

基本词:ASP

渡人请保留白文网址: http://www.www.d5897.com/a/164.html
ASP
*特别声明:以上内容来自于网络电视收集,著作权申请流程权属性质原作者所有,请具结吾辈: admin#www.d5897.com (#包换@)。
Baidu