首页 > 叨叨念念

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

 

 

相关合集

  • 模拟真实开车的手机游戏
模拟真实开车的手机游戏

简介:现在的游戏已经可以真正的做到非常逼真的效果,特别是驾驶模拟的游戏绝对是好玩到爆,不管是天气拟态系统制作还是在各种车辆的碰撞以及公路画面,甚至连驾驶操纵杆还有驾驶室等各个方面都是显示出来强大的引擎处理,这里小编为你找到并且整理了一些还是比较不错的好玩,有着非常逼真的模拟开车的游戏大全推荐。