首页 > 叨叨念念

[Bug]emlog6查询不存在的标签爆出数据库信息

发布时间:2018-11-27 09:19:09 来源:星知苑 作者:星之宇

平时可能会有删标签的习惯,有网站收录了删掉的标签,访客访问这个链接EMLOG6就会报SQL语句执行错误。

例如标签“测试”不存在,访问这个标签链接http://www.myxzy.com/tag/测试 就会报SQL语句执行错误,会出现以下提示:

SQL语句执行错误: SELECT `gid` FROM `emlog_tag` WHERE `tid` =

You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '' at line 1

346-1.png [break]

 

报错过程:通过访问标签链接路由分配到tag_controller.php控制器,控制器中执行到函数getTagByName,直接tag_model.php中大概47行函数

getTagByName中有2个函数getIdFromName和getTagById,getIdFromName会出现false的情况,getTagById没考虑到这种情况导致的。然后根据tag_controller.php之后的情况,修改函数getTagByName最为合适。

建议修复,因为SQL报错会被一些安全网站或者搜索引擎识别为安全漏洞,减低权限。

 

修复方法:

tag_model.php中大概47行函数改为如下

 

    function getTagByName($tagName) {
        $tagId = $this->getIdFromName($tagName);
	return $this->getTagById($tagId); 
    }
修改为    
    function getTagByName($tagName) {
        $tagId = $this->getIdFromName($tagName);
		if ($tagId) {
			return $this->getTagById($tagId); 
		}else{
			return false;
		}	
    }

 

 

相关合集

  • 手机清理软件哪个清理最彻底
手机清理软件哪个清理最彻底

简介:在手机使用过程中都是会出现很多的小毛病,最关键的是都是会出现手机卡顿,各种软件会出现闪退的情况,这个时候你就是需要手机清理的软件,这里有经过专业测评的手机清理软件,非常的专业相当彻底的清除手机中各种存在的各种垃圾的文件,绝对是很好用的,让你的手机进行加速,还能减少手机的各种软件损伤。