Essential PHP Security -PHP安全基础

1.2.3. 简单就是美

Top  Previous  Next

1.2.3. 简单就是美

       复杂滋生错误,错误能导致安全漏洞。这个简单的事实说明了为什么简单对于一个安全的应用来说是多么重要。没有必要的复杂与没有必要的风险一样糟糕。

 

例如,下面的代码摘自一个最近的安全漏洞通告:

 

CODE:

 

  <?php

 

  $search = (isset($_GET['search']) ? $_GET['search'] : '');

 

?>

 

       这个流程会混淆$search变量受污染*的事实,特别是对于缺乏经验的开发者而言。上面语句等价于下面的程序:

 

CODE:

 

  <?php

 

  $search = '';

 

  if (isset($_GET['search']))

  {

    $search = $_GET['search'];

  }

 

  ?>

 

       上面的两个处理流程是完全相同的。现在请注意一下下面的语句:

 

  $search = $_GET['search'];

 

       使用这一语句,在不影响流程的情况下,保证了$search变量的状态维持原样,同时还可以看出它是否受污染。

 

    * 译注:受污染变量,即在程序执行过程中,该变量的值不是由赋值语句直接指定值,而是来自其它来源,如控制台录入、数据库等。