28 信息泄露

 作者:老葛,北京亚艾元软件有限责任公司,http://www.yaiyuan.com

  信息泄露破坏了系统的保密性,它指信息被透漏给非授权的用户。这又分为多种情况。以前面sql注入的代码为例。

$result = db_select('node', 'n')

          ->fields('n',array('nid','title'))

            ->condition('n.type',$type)  

            ->execute();

    用户可以看到该类型下面的所有节点信息,当然这里面有些是需要做出限制的,比如未发表的节点,比如启用了节点访问控制模块后,用户无权访问的特定节点。此时我们需要对代码进行进一步的改进。

$result = db_select('node', 'n')

  ->fields('n',array('nid','title'))

  ->condition('n.type',$type)

          ->condition('n.status',1)

          ->addTag('node_access')    

  ->execute();

    这样用户便只能看到已发表的文章,同时节点访问控制模块也可以对我们的SQL进行修改,加上权限检查。


Drupal版本: