emlog博客评论BUG,emlog isLogCanComment函数小BUG,MySqli

2015年01月07日 技术资料 4681 views 0

今天论坛有人说评论有BUG,我看了一下,无意中注意到isLogCanComment函数。

function isLogCanComment($blogId) {
if (Option::get('iscomment') == 'n') {
return false;
}
$query = $this->db->query("SELECT allow_remark FROM ".DB_PREFIX."blog WHERE gid=$blogId");
$show_remark = $this->db->fetch_array($query);
if ($show_remark['allow_remark'] == 'n' || $show_remark === false) {
return false;
}else {
return true;
}
}


以上是isLogCanComment函数的代码,数据库(连接方式使用mysqli)查询$show_remark的值应该是空值NULL,所以不能用===false。


注意:数据库连接方式使用mysqli就会出现这个问题
影响就是POST伪造gid,可以把评论发布到不存在文章gid下,影响应该不大。


解决方法:

修改emlog目录下include\model\comment_model.php的isLogCanComment函数的代码


if ($show_remark['allow_remark'] == 'n' || $show_remark === false) {
改成


if ($show_remark['allow_remark'] == 'n' || $show_remark == false) {
或者


if ($show_remark['allow_remark'] == 'n' || $show_remark === NULL) {

👍好活当赏🧧

注意

》贝壳PE企业版 3.98 最终版V20260331已发布;

1、去掉所有注册机制,可本地永久运行!


停服公告:

随着年龄的增长,生活的变化,已经逐步开始退出研发网络了。iT猫也准备渐渐退网。退网后,网站也将无法再访问,近期会把带有注册机制的产品改为永久本地无限制模式,大家多关注最新版本。这不是落幕,这是我新的开始,生活不止眼前苟且还有诗和远方!如有更多的问题可以发邮件或者加QQ:845532699@qq.com



By iT猫itcat.cn 宣