首页 > 叨叨念念

[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;
		}	
    }

 

 

相关合集

  • 生活服务软件推荐
生活服务软件推荐

简介:现在很多的软件都是为了方便人民的生活而打造,像一些天气软件、购物APP、生活应用等,让你的生活变得更加便利,一部手机就能解决你生活中的很多问题。小编今天为大家带来的这几款软件,还是非常实用的,很多的功能你都能使用到,并且还是完全免费的,有需要的可以自己选择下载。