/** * 敏感分析服务 * * @return void */ function searchEngine($data, $runtime = false) { $process_start_time = getCurrentTime(); $result = post(X::getConfigVar("searchEngine"), ["words" => cleanFormat($data['content']), 'if_spam' => $data['if_spam']]); $process_end_time = getCurrentTime(); if ($runtime) { $process_time = round($process_end_time - $process_start_time, 4); //运行时间 return [$result, $process_time]; } return $result; }
/** * 公司登录 * * @return void */ public function signin($account, $password) { if (!$account || !$password) { exit; } $password = md5($password . X::getConfigVar('salt')); if ($result = $this->db()->table('company')->where("account = '%s' AND password = '******'", $account, $password)->findOne()) { X::session()->set(['company_name' => $result['company_name'], 'account' => $account, 'company_id' => $result['company_id']]); return $result; } else { return false; } }
/** * 发起post * * @return void */ function post($url, $data = [], $header = []) { return X::lib('fetch')->post($url, $data, $header); }
<?php use Engine\X; use Engine\Gvar; X::map('csrf', function () { echo "~~~~~~~~~~csrf~~~~~~~~~~~~~~"; }); //关闭csrf X::setEnv('csrf', false); //初始化session X::register('session', function () { $session = new libraries\session(); $session->start(); return $session; }); if (!X::session()->get('company_id') && X::getEnv('action') != 'signin' && X::getEnv('controller') != 'audit/index') { X::redirect('/audit/signin'); } // Gvar::set(['company_id' => X::session()->get('company_id'), 'company_name' => X::session()->get('company_name'), 'account' => X::session()->get('account')], 'audit');
<?php use Engine\X; include 'function/commom.php'; include 'function/help.php'; //标识 define('YES', 1); define('NO', 0); X::configure('me');
<?php use Engine\X; require './cli/start.php'; $db = X::db(); $rows = $db->table('hulkx_ban_ip')->find(); $writetime = time(); require "libraries/ipip/ip.php"; foreach ($rows as $row) { $ip_address = ''; if ($row['ip']) { if ($ipip = \libraries\ipip\Ip::find($row['ip'])) { $ip_address = implode($ipip); } list($ip_section1, $ip_section2, $ip_section3, $ip_section4) = explode('.', $row['ip']); $db->table('banip')->insert(['ban_time' => $row['ban_time'], 'valid_time' => $row['valid_time'], 'attack_amount' => 0, 'ip_address' => $ip_address, 'ip_section1' => $ip_section1, 'ip_section2' => $ip_section2, 'ip_section3' => $ip_section3, 'ip_section4' => $ip_section4]); } } print $db->table('banip')->count();
<?php namespace controllers; use Engine\X; use Engine\Gvar; use Engine\Route; /** * 首页 */ Route::get('index', function () { $get = X::request()->get(['p' => 1]); list($count, $log) = X::module('post')->allByBanLog(Gvar::audit('company_id'), $get->p); X::render('audit/post', ['log' => $log, '__page_html' => defaultPageHtml($count, $get->p, '?')]); });
} X::db()->query("UPDATE banip \n\t\t\t\t\t\t\tSET valid_time = {$valid_time} ,\n\t\t\t\t\t\t\t\tattack_amount = attack_amount + 1\n\t\t\t\t\t\t\tWHERE ip_id = {$ipInfo['ip_id']}"); } //统计命中率 X::module('company')->statisticsHit($company['company_id']); apiOutput(YES, ['hit' => YES, 'dirty_works' => "ip({$post->client_ip})被拦截"]); } //命中脏词 if ($tutu['hit']) { //统计命中率 X::module('company')->statisticsHit($company['company_id']); //如果命中的词是公共库而且是要封ip的 if ($tutu['depot'] === 2) { $dwRow = X::module('dirtyword')->byGlobal($tutu['dirty_id']); if ($dwRow['if_deny_id'] === 1) { X::module('post')->banIp($post->client_ip); } } apiOutput(YES, ['hit' => YES, 'dirty_works' => $tutu['dirty_works'], 'dirty_works_category_id' => $tutu['dwcategory_id'], 'category_name' => $tutu['category_name'], 'depot' => $tutu['depot']]); } }); /** * ip检测API * *$post['if_spam'] = 0; //是否拦截水贴 *$post['if_duplicate_deny'] = 0; //重复内容超过次数禁IP *$post['if_spate_deny'] = 0; //短时间内大量发帖 * */ Route::get('ip', function () { echo 'ip';
<?php namespace controllers; use Engine\X; use Engine\Gvar; use Engine\Route; /** * 添加脏词 */ Route::get('add', function () { X::render('audit/dirtyword_add'); }); Route::post('add', function () { $post = X::request()->post(['dirtyword' => '']); //添加脏词 X::module('dirtyword')->add(['words' => $post->dirtyword, 'company_id' => Gvar::audit('company_id')]); X::redirect("/audit/dirtyword/add"); }); Route::get('delete', function () { $get = X::request()->get(['id' => '']); //添加脏词 X::module('dirtyword')->del($get->id); echo "success"; });
<?php require "./X.php"; use Engine\X; use Engine\Gvar; use Engine\Mysql; require '__init__.php'; /********************************************/ /********************************************/ // Bottle::map('notFound', function(){ // echo("~~~~~~~~~~~~notFound~~~~~~~~~~~~"); // }); X::map('exception', function () { echo "~~~~~~~~~~error~~~~~~~~~~~~~~"; }); X::init(['online' => false, 'baseUrl' => dirname(__FILE__) . DIRECTORY_SEPARATOR, 'templateFuncFile' => 'function/template.php']); //连接数据库 X::register('db', function () { return new Mysql(X::getConfigVar('database')); }); Gvar::set(['ip' => ip()], 'global'); //csrf_token X::start(['audit']);
<?php namespace controllers; use Engine\X; use Engine\Route; /** * 首页 */ Route::fragment('navigation', function () { X::render('fragment/navigation'); });
<?php require "./X.php"; use Engine\X; use Engine\Mysql; require '__init__.php'; X::cli(['online' => false]); //连接数据库 X::register('db', function () { return new Mysql(X::getConfigVar('database')); });
/** * 默认分页limit * * @return void */ function defaultPageLimit($page) { $end = X::getConfigVar('defaultPageRecordNumber'); $start = ($page - 1) * $end; return [$start, $end]; }
/** * 查找 */ Route::get('search', function () { $get = X::request()->get(['search' => '']); $dw = X::module('dirtyword')->search($get->search); X::render('audit/index', ['dirtyword' => $dw]); }); /** * 登录 */ Route::get('signin', function () { X::render('audit/login'); }); Route::post('signin', function () { $post = X::request()->post(['account' => '', 'password' => '']); if (!$post->account || !$post->password) { X::redirect('/audit/signin'); } if ($company = X::module('company')->signin($post->account, $post->password)) { X::redirect('/audit'); } else { X::redirect('www.baidu.com'); } }); /** * 脏词管理 */ Route::get('dirtyword', function () { X::render('audit/dirtyword'); });