今天论坛有人说评论有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) {
文章作者:博客之家
文章標題:emlog isLogCanComment函数小BUG(MySqli)
文章鏈接:https://www.likinming.com/post-5.html
本站所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議,轉載請註明來自博客之家 !
文章標題:emlog isLogCanComment函数小BUG(MySqli)
文章鏈接:https://www.likinming.com/post-5.html
本站所有文章除特別聲明外,均採用 CC BY-NC-SA 4.0 許可協議,轉載請註明來自博客之家 !

评论列表(1条)