Fix #1634 bypass spamfilter when sending messages from core modules

This commit is contained in:
Kijin Sung 2021-02-23 22:01:32 +09:00
parent 46ef2437b7
commit fc4d8a6824
9 changed files with 17 additions and 11 deletions

View file

@ -278,7 +278,7 @@ class commentAdminController extends comment
$content = sprintf("<div>%s</div><hr /><div style=\"font-weight:bold\">%s</div>", $message_content, $oComment->getContentText(20));
$oCommunicationController->sendMessage($sender_member_srl, $oComment->get('member_srl'), $title, $content, FALSE);
$oCommunicationController->sendMessage($sender_member_srl, $oComment->get('member_srl'), $title, $content, false, null, false);
}
}

View file

@ -1695,7 +1695,7 @@ class commentController extends comment
$message_content = sprintf('<p><a href="%s">%s</a></p><p>%s</p>', $oComment->getPermanentUrl(), $oComment->getContentText(50), $declare_message);
foreach ($message_targets as $target_member_srl => $val)
{
$oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false);
$oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false, null, false);
}
}

View file

@ -254,7 +254,7 @@ class commentItem extends BaseObject
// send a message
$oCommunicationController = getController('communication');
$oCommunicationController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, FALSE);
$oCommunicationController->sendMessage($sender_member_srl, $receiver_srl, $title, $content, false, null, false);
}
function getIpAddress()

View file

@ -158,11 +158,12 @@ class communicationController extends communication
* @param int $receiver_srl member_srl of receiver_srl
* @param string $title
* @param string $content
* @param boolean $sender_log (default true)
* @param bool $sender_log (default true)
* @param int|null $temp_srl (default null)
* @param bool $use_spamfilter (default true)
* @return Object
*/
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true, $temp_srl = null)
function sendMessage($sender_srl, $receiver_srl, $title, $content, $sender_log = true, $temp_srl = null, $use_spamfilter = true)
{
// Encode the title and content.
$title = escape($title, false);
@ -212,6 +213,7 @@ class communicationController extends communication
$trigger_obj->title = $title;
$trigger_obj->content = $content;
$trigger_obj->sender_log = $sender_log;
$trigger_obj->use_spamfilter = $use_spamfilter;
$trigger_output = ModuleHandler::triggerCall('communication.sendMessage', 'before', $trigger_obj);
if(!$trigger_output->toBool())
{

View file

@ -1790,7 +1790,7 @@ class documentController extends document
$message_content = sprintf('<p><a href="%s">%s</a></p><p>%s</p>', $oDocument->getPermanentUrl(), $oDocument->getTitleText(), $declare_message);
foreach ($message_targets as $target_member_srl => $val)
{
$oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false);
$oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false, null, false);
}
}
@ -1907,7 +1907,7 @@ class documentController extends document
$message_content = sprintf('<p><a href="%s">%s</a></p>', $oDocument->getPermanentUrl(), $oDocument->getTitleText());
foreach ($message_targets as $target_member_srl => $val)
{
$oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false);
$oCommunicationController->sendMessage($this->user->member_srl, $target_member_srl, $message_title, $message_content, false. null, false);
}
}
@ -2990,7 +2990,7 @@ Content;
$oCommunicationController = getController('communication');
foreach ($recipients as $member_srl => $items)
{
$oCommunicationController->sendMessage($this->user->member_srl, $member_srl, $title, sprintf($content, implode('', $items)));
$oCommunicationController->sendMessage($this->user->member_srl, $member_srl, $title, sprintf($content, implode('', $items)), true, null, false);
}
}

View file

@ -406,7 +406,7 @@ class documentItem extends BaseObject
// Send a message
$sender_member_srl = $logged_info->member_srl ?: $this->get('member_srl');
getController('communication')->sendMessage($sender_member_srl, $this->get('member_srl'), $title, $content, false);
getController('communication')->sendMessage($sender_member_srl, $this->get('member_srl'), $title, $content, false, null, false);
}
function getLangCode()

View file

@ -973,7 +973,7 @@ class memberAdminController extends member
foreach($members as $member_srl)
{
$oCommunicationController->sendMessage($sender_member_srl, $member_srl, $title, $message, false);
$oCommunicationController->sendMessage($sender_member_srl, $member_srl, $title, $message, true, null, false);
}
}

View file

@ -2450,7 +2450,7 @@ class memberController extends member
//send message
$oCommunicationController = getController('communication');
$oCommunicationController->sendMessage($args->member_srl, $args->member_srl, $title, $content, true);
$oCommunicationController->sendMessage($args->member_srl, $args->member_srl, $title, $content, true, null, false);
if($member_info->email_address && $member_info->allow_mailing == 'Y')
{

View file

@ -181,6 +181,10 @@ class spamfilterController extends spamfilter
function triggerSendMessage(&$obj)
{
if($_SESSION['avoid_log']) return;
if(isset($obj->use_spamfilter) && $obj->use_spamfilter === false)
{
return;
}
$logged_info = Context::get('logged_info');
if($logged_info->is_admin == 'Y') return;