作者:老葛,北京亚艾元软件有限责任公司,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进行修改,加上权限检查。