阅读以下说明,回答问题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") = "管理登录" Then
user_name = request.Form("(1)")
password = request.Form(" (2)")
verifycode = request.Form("(3)")
If user name = "" Then
Call 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,1
If(7)rs .EOF Then
session("user name") = user_name
response.redirect "informltion.asp"
Else
Call infoback(" 用户名或密码错误! ")
End If
End 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. reset
F.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" Then
GetFlag = True
Else
GetFlag = False
End If
If GetFlag Then
For Each RequestKey In Request .QueryString
For ForI = 0 To UBound(Erro Sql)
If InStr(LCase(Request.CueryString(RequestKey)) ,ErrorSql
(ForI))<>O Then
response.Write "<script>alert("" 警告:\n请不要使用特殊字符 \n比如英文的单引号’ "");history.go(-l);</script>"
Response. (10)
(11)
Next
(12)
(13)
For Each RequestKey In Request .Form
For ForI = 0 To UBound(ErrorSql)
......
%>
(10)~(13)备选答案如下:A.Else B.End If C.End D.Next
2.根据上述代码可以判断,登录页面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语句。
你可能感兴趣的试题
E-mail地址由分隔符“()”分为前后两部分,分别指明用户名及邮件
-
- A.//
- B.\\
- C.@
- 查看答案
某 html 文档中有如下代码,则在浏览器中打开该文档时显示为( )。
<form>
Listl:
<input type="text" name="List1" />
<br / >
List2:
<input type="text" name="List 2 " />
< /form>
-
- A.见图A
- B.见图B
- C.见图C
- D.见图D
- 查看答案
设有商品关系P(商品名,条形码,供应商号,价格,数量), “条形码”唯一标识关系P中的每一个元组,商品名不能为空,供应商号是关系P的外键。另有供应商关系S(供应商号,供应商名,地址,电话)。关系 P 中的商品名是唯一的。建立商品关系 P 的 SQL语句如下所示:
CREATE TABLE P( 商品名CHAR(30)( ),
条形码CHAR(30) ( ) ,
供应商号 CHAR(5) ,
价格 CHAR(20) ,
数量CHAR(20)
( )(供应商号) REFERENCES S(供应商号));
查询供应商及价格小于等于 2500 元且大于等于 1280 元的“电冰箱”的数量的SQL语句为:
SELECT商品名,供应商名,价格,数量
FROM P
WHERE商品名= ’电冰箱’ AND ( ) ;
将供应商号“12021”所供应的商品价格上涨3%的SQL语句为:
UPDATE P
( )
WHERE 供应商号= ’12021’;
查询供应商地址包含“西安”的供应商名及电话的SQL语句为:
SELECT供应商名,电话
FROM S
WHERE ( );
-
- A.NULL
- B.UNIQUE
- C.NOT NULL
- D.NOT NULL UNIQUE
- 查看答案
函数f()、g()的定义如下所示。已知调用f时传递给其形参x的值是1,若以传值方式调用g,则函数f的返回值为( );若以传引用方式调用g,则函数f的返回值为( )。
-
- A.3
- B.4
- C.6
- D.7
- 查看答案
-
- A.见图A
- B.见图B
- C.见图C
- D.见图D
- 查看答案