[Zend权威认证试题讲解]第十一章 - 编写安全的PHP程序
PHP太强大、太容易了,因此开发者常常忘记Web安全相关的问题。`r8Xz*z WIs YB i抛开重要性不看,安全问题往往是网站中最容易被人忽视的一个部分。不幸的是,有很多种方法可以从内部或外部危害系统的安全,你必须不断的找出并修补这些潜在的危险因素。dV@]T@
在进行安全检测时,有很多需要强调的问题——不止是与安全直接相关的,还包括许多其他的内容。
要编写安全的程序,首先必须掌握一些基础技术,这样你才能应付本章的题目。
{:xD b+d6{S%Gt
问题8A'Y IuQx.s Q UI$V
5@I|]c"U6c
1.以下哪种方法能防止你的PHP程序遭受外部入侵?hN+f1\2[9g {,S.U3M"e
A.使用复杂的加密算法-yN4mgr1F,A
B.保护数据库密码
C.如果有可能的话,使用SSL!gH3hb&a
D.验证输入
E.只使用来源可信的输入E$^3MKQ1}]G
/y3tY9B5MqJ.uP+n
2.假设$action和$data变量用来接受用户输入,并且register_globals是打开的。以下代码是否安全?[code]
<?php
if(isUserAdmin()) { $isAdmin = true; }pdOz3{p
$data = validate_and_return_input($data);!O f6ouxEw
switch($action)$B&nvP|/d \
{
case 'add':
addSomething($data);
break;N {}Mb(Ru2]_
case 'delete':
if($isAdmin) {o B0hS,`M3IH$S#fp
deleteSomething($data);6`)|+`7c!i.g:R!O[ui
}
break;?V _8QX\B^
case 'edit':
if($isAdmin) {
editSomething($data);