emlog6隨便訪問一個不存在的標簽鏈接,例如:https://emlog.cn/tag/emlog

SQL語句執(zhí)行錯誤: 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控制器,控制器中執(zhí)行到函數(shù)getTagByName,直接tag_model.php中大概47行函數(shù)。

getTagByName中有2個函數(shù)getIdFromName和getTagById,getIdFromName會出現(xiàn)false的情況,getTagById沒考慮到這種情況導致的。然后根據(jù)tag_controller.php之后的情況,修改函數(shù)getTagByName最為合適。

建議修復,因為SQL報錯會被一些安全網(wǎng)站或者搜索引擎識別為安全漏洞,減低權限。

修復方法:

tag_model.php中大概47行函數(shù)改為如下

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

內容來源于:星知苑

上一篇
2022-09-03

視頻錄制工具oCam Pro 455.0 綠色去廣告版

下一篇
2022-09-03

在一個用謠言相互傷害的家庭里