云服務器提示木馬
【騰訊云】尊敬的用戶,您的服務器xxxxx檢測到存在未處理的/www/wwwroot/xxxx/dayrui/Fcms/Control/Member/Form.php木馬文件。您的服務器疑似被黑客入侵,請及時登錄主機安全控制臺 (https://tencentcs.com/GGxotbf6 )處理相關安全事件,并開通主機安全專業(yè)版防護。
請問這個是誤判還是中馬了?
下面是這個Form.php的源代碼
<?php namespace Phpcmf\Member;
/**
* http://www.apdwn.com
* 本文件是框架系統(tǒng)文件,二次開發(fā)時不可以修改本文件,可以通過繼承類方法來重寫此文件
**/
// 網站表單操作類 基于 Ftable
class Form extends \Phpcmf\Table
{
protected $form;
protected $_is_post;
protected $_is_edit;
protected $_is_delete;
// 上級公共類
public function __construct(...$params) {
parent::__construct(...$params);
$this->_Extend_Init();
}
// 繼承類初始化
protected function _Extend_Init() {
// 判斷表單是否操作
$cache = \Phpcmf\Service::L('cache')->get('form-'.SITE_ID);
$this->form = $cache[\Phpcmf\Service::L('Router')->class];
if (!$this->form) {
$this->_admin_msg(0, dr_lang('網站表單【%s】不存在', \Phpcmf\Service::L('Router')->class));
} elseif (!$this->form['setting']['is_member']) {
$this->_msg(0, dr_lang('網站表單【%s】沒有開啟管理內容功能', \Phpcmf\Service::L('Router')->class));
}
// 支持附表存儲
$this->is_data = 1;
// 模板前綴(避免混淆)
$this->tpl_prefix = 'form_';
// 單獨模板命名
$this->tpl_name = $this->form['table'];
// 表單顯示名稱
$this->name = dr_lang('網站表單(%s)', $this->form['name']);
// 初始化數據表
$this->_init([
'table' => SITE_ID.'_form_'.$this->form['table'],
'field' => $this->form['field'],
'date_field' => 'inputtime',
'show_field' => 'title',
'list_field' => $this->form['setting']['list_field'],
'order_by' => 'displayorder DESC,inputtime DESC',
'where_list' => 'uid='.$this->uid,
]);
$this->edit_where = $this->delete_where = 'uid='.$this->uid;
// 無權限發(fā)布表單
if (!\Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'add', $this->member)) {
$this->_is_post = 0;
} else {
$this->_is_post = 1;
}
// 修改權限
if (!\Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'edit', $this->member)) {
$this->_is_edit = 0;
} else {
$this->_is_edit = 1;
}
// 刪除權限
if (!\Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'del', $this->member)) {
$this->_is_delete = 0;
} else {
$this->_is_delete = 1;
}
// 是否有驗證碼
$this->is_post_code = \Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'code', $this->member);
\Phpcmf\Service::V()->assign([
'field' => $this->init['field'],
'form_list' => $cache,
'form_name' => $this->form['name'],
'form_table' => $this->form['table'],
'is_delete' => $this->_is_delete,
'is_post' => $this->_is_post,
'is_edit' => $this->_is_edit,
'is_post_code' => $this->is_post_code,
]);
}
// 添加表單內容
protected function _Member_Add() {
list($tpl) = $this->_Post(0);
\Phpcmf\Service::V()->display($tpl);
}
// 修改表單內容
protected function _Member_Edit() {
$id = intval(\Phpcmf\Service::L('input')->get('id'));
list($tpl, $data) = $this->_Post($id);
!$data && $this->_msg(0, dr_lang('數據不存在: '.$id));
\Phpcmf\Service::V()->display($tpl);
}
// 查看表單列表
protected function _Member_List() {
list($tpl) = $this->_List();
return \Phpcmf\Service::V()->display($tpl);
}
// 刪除表單內容
protected function _Member_Del() {
$this->_Del(
\Phpcmf\Service::L('input')->get_post_ids(),
null,
function ($rows) {
// 對應刪除提醒
foreach ($rows as $t) {
\Phpcmf\Service::M('member')->delete_admin_notice('form/'.$this->form['table'].'_verify/edit:id/'.$t['id'], SITE_ID);
\Phpcmf\Service::M('member')->delete_admin_notice('form/'.$this->form['table'].'/edit:id/'.$t['id'], SITE_ID);
\Phpcmf\Service::L('cache')->clear('from_'.$this->form['table'].'_show_id_'.$t['id']);
}
},
\Phpcmf\Service::M()->dbprefix($this->init['table'])
);
}
// 后臺批量保存排序值
protected function _Member_Order() {
$this->_Display_Order(
intval(\Phpcmf\Service::L('input')->get('id')),
intval(\Phpcmf\Service::L('input')->get('value'))
);
}
/**
* 獲取內容
* $id 內容id,新增為0
* */
protected function _Data($id = 0) {
$data = parent::_Data($id);
if ($data && $data['uid'] != $this->uid) {
return [];
}
return $data;
}
// 格式化保存數據 保存之前
protected function _Format_Data($id, $data, $old) {
// 新增數據
if (!$old) {
if ($this->uid) {
// 判斷日發(fā)布量
$day_post = \Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'day_post', $this->member);
if ($day_post && \Phpcmf\Service::M()->db
->table($this->init['table'])
->where('uid', $this->uid)
->where('DATEDIFF(from_unixtime(inputtime),now())=0')
->countAllResults() >= $day_post) {
$this->_json(0, dr_lang('每天發(fā)布數量不能超過%s個', $day_post));
}
// 判斷發(fā)布總量
$total_post = \Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'total_post', $this->member);
if ($total_post && \Phpcmf\Service::M()->db
->table($this->init['table'])
->where('uid', $this->uid)
->countAllResults() >= $total_post) {
$this->_json(0, dr_lang('發(fā)布數量不能超過%s個', $total_post));
}
}
// 審核狀態(tài)
$data[1]['status'] = \Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'verify', $this->member) ? 0 : 1;
// 默認數據
$data[0]['uid'] = $data[1]['uid'] = (int)$this->member['uid'];
$data[1]['author'] = $this->member['username'] ? $this->member['username'] : 'guest';
$data[1]['inputip'] = \Phpcmf\Service::L('input')->ip_address();
$data[1]['inputtime'] = SYS_TIME;
$data[1]['tableid'] = $data[1]['displayorder'] = 0;
} else {
// 修改時
// 審核狀態(tài)
$data[1]['status'] = \Phpcmf\Service::M('member_auth')->form_auth($this->form['id'], 'verify2', $this->member) ? 0 : 1;
}
return $data;
}
/**
* 保存內容
* $id 內容id,新增為0
* $data 提交內容數組,留空為自動獲取
* $func 格式化提交的數據
* */
protected function _Save($id = 0, $data = [], $old = [], $func = null, $func2 = null) {
return parent::_Save($id, $data, $old, null,
function ($id, $data, $old) {
if (!$old) {
// 首次 發(fā)布
// 提醒通知
if ($this->form['setting']['notice']['use']) {
if ($this->form['setting']['notice']['username']) {
$arr = explode(',', $this->form['setting']['notice']['username']);
foreach ($arr as $username) {
$user = dr_member_username_info($username);
if (!$user) {
log_message('error', '網站表單【'.$this->form['name'].'】已開啟通知提醒,但通知人用戶名['.$username.']有誤');
} else {
\Phpcmf\Service::L('Notice')->send_notice_user('form_'.$this->form['table'].'_post', $user['id'], dr_array2array($data[1], $data[0]), $this->form['setting']['notice']);
}
}
} else {
log_message('error', '網站表單【'.$this->form['name'].'】已開啟通知提醒,但未設置通知人');
}
}
}
if (!$data[1]['status']) {
// 審核
\Phpcmf\Service::M('member')->admin_notice(SITE_ID, 'content', $this->member, dr_lang('%s提交審核', $this->form['name']), 'form/'.$this->form['table'].'_verify/edit:id/'.$data[1]['id'], SITE_ID);
$data['url'] = $this->form['setting']['rt_url'];
$this->_json($data[1]['id'], dr_lang('操作成功,等待管理員審核'), $data);
}
// 掛鉤點
\Phpcmf\Hooks::trigger('form_post_after', dr_array2array($data[1], $data[0]));
$this->_json($data[1]['id'], dr_lang('操作成功'), $data);
}
);
}
}
升級最新版
開源是一種精神,但不是義務,幫忙是情分,不幫也不要抱怨,建議大家多研究代碼、多閱讀代碼、多翻閱社區(qū)歷史問題!
log_message('error', '網站表單【'.$this->form['name'].'】已開啟通知提醒,但通知人用戶名['.$username.']有誤');把這一行去掉就不會報了