Remove support for $is_admin in getDocument(), getDocuments(), getComment()

단순히 문서나 댓글을 불러오는 동작에서는 $is_admin 변수를 무시하도록 합니다.
서드파티 자료에서 사용할 경우 해당 문서나 댓글에 관리자 권한이 부여되어 버려서
보안취약점이 발생할 수 있기 때문입니다.

실제로 많은 서드파티 자료들이 이 변수가 왜 필요한지, 어떤 기능을 하는지
이해하지 못하는 상태로 무작정 복붙하여 사용하고 있습니다.
이러한 서드파티 자료에서 이 패치로 인해 오작동이 발생할 경우에는
그 때 가서 적절한 조치를 취하도록 하겠습니다.

getDocumentListByMemberSrl(), getCommentListByMemberSrl(), getCommentList() 등
일부 메소드에서는 이미 $is_admin 변수를 무시하도록 되어 있습니다.
This commit is contained in:
Kijin Sung 2020-10-28 00:30:39 +09:00
parent 5c99a23e68
commit 61f6456b6c
4 changed files with 11 additions and 2 deletions

View file

@ -157,10 +157,12 @@ class commentModel extends comment
public static function getComment($comment_srl = 0, $is_admin = FALSE, $columnList = array())
{
$oComment = new commentItem($comment_srl, $columnList);
/*
if($is_admin)
{
$oComment->setGrant();
}
*/
return $oComment;
}

View file

@ -3120,7 +3120,7 @@ Content;
else
{
$documentList = array();
$this->setMessage(lang(no_documents));
$this->setMessage(lang('no_documents'));
}
$oSecurity = new Security($documentList);
$oSecurity->encodeHTML('..variables.');

View file

@ -1040,7 +1040,10 @@ class documentItem extends BaseObject
if(!$this->allowTrackback() || !$this->get('trackback_count')) return;
$oTrackbackModel = getModel('trackback');
return $oTrackbackModel->getTrackbackList($this->document_srl, $is_admin);
if ($oTrackbackModel)
{
return $oTrackbackModel->getTrackbackList($this->document_srl);
}
}
function thumbnailExists($width = 80, $height = 0, $type = '')

View file

@ -169,10 +169,12 @@ class documentModel extends document
return $oDocument;
}
}
/*
if($is_admin)
{
$GLOBALS['XE_DOCUMENT_LIST'][$document_srl]->setGrant();
}
*/
return $GLOBALS['XE_DOCUMENT_LIST'][$document_srl];
}
@ -210,10 +212,12 @@ class documentModel extends document
$oDocument = new documentItem();
$oDocument->setAttribute($attribute, false);
}
/*
if($is_admin)
{
$GLOBALS['XE_DOCUMENT_LIST'][$attribute->document_srl]->setGrant();
}
*/
$documents[$attribute->document_srl] = $GLOBALS['XE_DOCUMENT_LIST'][$attribute->document_srl];
}