题目详情

阅读以下说明,回答问题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
查看答案

相关题库更多 +