手机游戏
经典单机
角色扮演
休闲益智
动作冒险
射击枪战
赛车竞速
模拟经营
解密闯关
策略战争
手机软件
时尚购物
体育运动
资讯阅读
教育学习
摄影摄像
生活服务
效率办公
聊天社交
其它软件
新闻资讯
游戏攻略
软件教程
游戏问答
软件技术
叨叨念念
网站技术
技术问答
软件教程
资源资料
原创作品
代码学习
网页设计
网络技术
合集
合集
游戏合集
软件合集
资讯合集
视频合集
首页 > 叨叨念念 > 叨叨念念

[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
  • 设计本装修下载
  • 装修修下载
  • 装修设计app
  • 装修图库app下载
  • 家装云装修app
  • 装酷装修app
买新房子必然都是需要遇到装修这个问题的,俗话说的好装修是大事要让自己让家人住得更加的舒服就要有考虑到非常多的事情和细节,从房子的设计到用料选材都是需要下很大的功夫的要花很大量的时间去进行各种材料的对比,也要根据自己的实际资金情况来定夺。所有需要有好用的真正靠谱的装修帮手来让你省钱又省时间的进行装修参考。

相关资讯