emlog6.0.0标签查询bug

乱编乱写 530 Views 1 Comments

emlog6随便访问一个不存在的标签链接,例如:https://emlog.cn/tag/emlog

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

20190408152559.jpg

报错过程:通过访问标签链接路由分配到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;
	}
}

内容来源于:星知苑

标签: 安全, PHP, emlog,

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
loading