Esempio n. 1
0
/**
* 敏感分析服务
*
* @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;
}
Esempio n. 2
0
 /**
  * 公司登录
  *
  * @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;
     }
 }
Esempio n. 3
0
/**
* 发起post
*
* @return void
*/
function post($url, $data = [], $header = [])
{
    return X::lib('fetch')->post($url, $data, $header);
}
Esempio n. 4
0
<?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');
Esempio n. 5
0
<?php

use Engine\X;
include 'function/commom.php';
include 'function/help.php';
//标识
define('YES', 1);
define('NO', 0);
X::configure('me');
Esempio n. 6
0
<?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();
Esempio n. 7
0
<?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, '?')]);
});
Esempio n. 8
0
            }
            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';
Esempio n. 9
0
<?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";
});
Esempio n. 10
0
<?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']);
Esempio n. 11
0
<?php

namespace controllers;

use Engine\X;
use Engine\Route;
/**
* 首页
*/
Route::fragment('navigation', function () {
    X::render('fragment/navigation');
});
Esempio n. 12
0
<?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'));
});
Esempio n. 13
0
/**
* 默认分页limit
*
* @return void
*/
function defaultPageLimit($page)
{
    $end = X::getConfigVar('defaultPageRecordNumber');
    $start = ($page - 1) * $end;
    return [$start, $end];
}
Esempio n. 14
0
/**
* 查找
*/
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');
});