阅读以下说明,回答问题1至问题2,将解答填入答题纸对应的解答栏内。 【说明】

免费题库2022-08-02  30

问题 阅读以下说明,回答问题1至问题2,将解答填入答题纸对应的解答栏内。【说明】某留言系统采用ASP+Access开发,其后台管理登录页面如图4-1所示。【问题1】(9分)以下是该后台管理登录页面login.asp的部分代码,请仔细阅读该段代码,根据图4-1 将(1)~(9)的空缺代码补齐。 <!--jfoinclude  file="conn.asp"--><!--jfoinclude file="md5.asp"--><!--jfoinclude   file="bbb.asp"--><%If  request.Form("submit")   =  "管理登录" Thenuser_name  =  request.Form("(1)")password = request.Form(" (2)")verifycode  =  request.Form("(3)")If  user  name  =  "" ThenCall infoback(" 用户名不能为空! ")End If......Set   (4)= server.CreateObject("adodb.recordset")sql =  "select  * from administrator(5)user_name='"&user-name&"'and  password='"&md5(password)&'''''rs.Open(6),conn,1,1If(7)rs .EOF Thensession("user name")  = user_nameresponse.redirect  "informltion.asp"ElseCall infoback(" 用户名或密码错误! ")End  IfEnd If%><html   >......<body><form method="post"  action="login.asp"  id="login"><h1> 管理员登录</h1><label   for="user_name">用户名:<input  name="user_name"  type""text"  class="user_name"  id="uname" size="25"   /></label><label for="password"> 密码:<input name="password"  type="password"  id="pword"  size="25" /></label><label  for="verifycode"> 验证码:<input  name="verifycode"  type="text"  class="verifycode"  id="vcode" size="10" max1ength="4" /><img src="code. asp" onclick=' 'javascript :this.src=' code .asp?tm=' +Math.random()" style="cursor: )ointer" alt="单击更换" title="单击更换" /></label><p   class="center"><input  name="reset"  type="(8)" class="submit"  value="清除数据 " /><input type="(9)" name="submit" class="submit" value=" 管理登录 " /></p></form></body></html>(1)~(9)备选答案如下:A.pword                 B.  where     C. uname    D.  vcode   E. resetF.submit                 G. rs                    H. sql                    I. Not    【问题2】(6分)1.在登录页面 login.asp 中通过<!--#include file=“bbB.asp”-->导入了bbB.asp的代码,以下是bbB.asp的部分代码,请仔细阅读该段代码,将空缺代码补齐。    <% Dim  GetFlag  Rem( 提交方式)Dim ErrorSql  Rem( 非法字符)Dirn  RequestKey  Rern( 提交数据) Dirn  ForI  Rern( 循环标记)ErrorSql  =  "'~; ~and~(~) ~exec~update~count~*~%~chr~mid~master~truncate~char~declare"  Rem(每个敏感字符或者词语请使用半角"~"格开)ErrorSql  =  Split(ErrorSql ,"~")If     Request.ServerVariables("REQUEET_METHOD")  = "GET" ThenGetFlag   =   TrueElseGetFlag  =  FalseEnd IfIf  GetFlag  ThenFor   Each  RequestKey   In  Request .QueryStringFor  ForI  =  0  To  UBound(Erro Sql)If     InStr(LCase(Request.CueryString(RequestKey))    ,ErrorSql(ForI))<>O  Thenresponse.Write  "<script>alert("" 警告:\n请不要使用特殊字符 \n比如英文的单引号’ "");history.go(-l);</script>"Response. (10)(11)Next(12)(13)For  Each  RequestKey  In  Request .FormFor  ForI  =  0  To  UBound(ErrorSql)......%>(10)~(13)备选答案如下:A.Else        B.End If            C.End       D.Next2.根据上述代码可以判断,登录页面login.asp导入bbB.asp的代码的目的是  (14)  。()

选项

答案

解析 【问题1】(9分,每空1分)
(1)C或uname
(2)A或pword
(3)D或vcode
(4)G或rs
(5)B或where
(6)H或sql
(7)I或Not
(8)E或reset
(9)F或submit
【问题2】(6分, 第14空2分)
(10)C或End
(11)B或End If
(12)D或Next
(13)A或Else
(14)ASP通用防止sql注入攻击

【问题1】
request.form方法:获取客户端表单信息(通常是POST方法提交的表单)。
user_name、password、varifycode为变量,分别用三个文本字段表单元素的ID结合request.form方法进行赋值。
语句Set rs = server. CreateObject(“adodb.recordset”)为建立数据记录集实例。
语句sql = “select * from administrator where user_name = “&user_name&”andpassword = “&md5(password)””为定义一条带条件查询的SQL语句(用sql引用)。
语句rs.Open sql,conn,1,1 为定义以只读方式打开数据集记录。一般情况下,执行rs.open sql .conn是查询数据库中是否有符合该SQL语句的记录,如果记录存在那么rs.Eof=false,如果不存在那么rs.eof=true,if not rs.eof就是如果记录集指针没有到达最后一条记录之前,指针继续下移。
【问题2】
该小问涉及的代码为ASP通用防止sql注入式攻击的代码。从作题来说,需要考生熟悉ASP条件判断语句If的语句格式,通常情况下其格式为:
   If  xxxx   Then  yyyy
    Else zzzz
   End If
若是在If语句内嵌套了If语句,则内嵌的If语句会有对应的End If语句。
转载请注明原文地址:https://www.tihaiku.com/congyezige/2431437.html

最新回复(0)