Browse Source

增加服务器限制处理

master
李昭辉 4 weeks ago
parent
commit
0d8f4d2ff9
  1. 11
      api/send_user.php
  2. 55
      crontab/crosscheck_auto_shell_v2.php

11
api/send_user.php

@ -14,15 +14,22 @@ $need_login_file = __DIR__ . '/../cookie_file/needlogin_'.$user.'.txt'; // 需
$done_login_file = __DIR__ . '/../cookie_file/'.$user.'.txt'; // 已登录的账号文件 $done_login_file = __DIR__ . '/../cookie_file/'.$user.'.txt'; // 已登录的账号文件
$ban_file = __DIR__ . '/../cookie_file/ban_'.$user.'.txt'; // 被禁用的账号文件 $ban_file = __DIR__ . '/../cookie_file/ban_'.$user.'.txt'; // 被禁用的账号文件
$fail_login_file = __DIR__ . '/../cookie_file/fail_'.$user.'.txt'; // 错误登录的账号文件 $fail_login_file = __DIR__ . '/../cookie_file/fail_'.$user.'.txt'; // 错误登录的账号文件
$ban_server_file = __DIR__ . '/../cookie_file/server_ban.txt'; // 被禁用服务器的账号文件
// 检测是否被禁用 // 检测是否被禁用
if(file_exists($ban_file)){ if(file_exists($ban_file)){
exit('ban'); exit('ban');
} }
// 检测是否错误登录超过5次
// 检测是否被禁用服务器
if(file_exists($ban_server_file)){
exit('server_ban');
}
// 检测是否错误登录超过15次
if(file_exists($fail_login_file)){ if(file_exists($fail_login_file)){
$fail_login_times = file_get_contents($fail_login_file); $fail_login_times = file_get_contents($fail_login_file);
if($fail_login_times+0 >= 5){ if($fail_login_times+0 >= 15){
exit('fail'); exit('fail');
} }
} }

55
crontab/crosscheck_auto_shell_v2.php

@ -25,8 +25,19 @@ try{
foreach($list as $v){ foreach($list as $v){
$need_login_file = $dir.$v; $need_login_file = $dir.$v;
$fail_login_file = $dir.'fail_'.$v;
$ban_file = $dir.'ban_'.$v; // 获得文件内容
$param = file_get_contents($need_login_file);
// 获得crosscheck账号密码
$arr_user_info = explode("\n", $param);
$user = ltrim($arr_user_info[0]);
$passwd = ltrim($arr_user_info[1]);
$tenant = ltrim($arr_user_info[2]);
$fail_login_file = $dir.'fail_'.$user.'.txt';
$ban_file = $dir.'ban_'.$user.'.txt';
$ban_server_file = $dir.'server_ban.txt';
// 检测是否被禁用 // 检测是否被禁用
if(file_exists($ban_file)){ if(file_exists($ban_file)){
@ -42,14 +53,28 @@ try{
continue; continue;
} }
} }
// 获得文件内容
$param = file_get_contents($need_login_file);
// 获得crosscheck账号密码 // 检测是否被禁用服务器
$arr_user_info = explode("\n", $param); if(file_exists($ban_server_file)){
$user = ltrim($arr_user_info[0]); $ban_server_limit_times = 3;
$passwd = ltrim($arr_user_info[1]); // 获得文件的创建时间
$tenant = ltrim($arr_user_info[2]); $create_time = filemtime($ban_server_file);
// 检查是否超过1小时
if(time() - $create_time > 60*60){
// 重置禁用服务器文件
unlink($ban_server_file);
file_put_contents($ban_server_file, ($ban_server_limit_times-1) . PHP_EOL);
// 记录日志
$str_log = date('Y-m-d H:i:s')."|重置禁用服务器文件server_ban.txt|".$user;
file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND);
}
$ban_server_info = file_get_contents($ban_server_file);
$arr_ban_server_info = explode("\n", $ban_server_info);
if($arr_ban_server_info[0]+0 >= $ban_server_limit_times){
continue;
}
}
// 账号cookie文件路径 // 账号cookie文件路径
$cookie_path = __DIR__ . '/../cookie_file/'.$user.'.txt'; $cookie_path = __DIR__ . '/../cookie_file/'.$user.'.txt';
@ -102,6 +127,17 @@ try{
$str_log = date('Y-m-d H:i:s')."|登录失败|第".$fail_info."次|".$user."|运行时间:".$run_time_str; $str_log = date('Y-m-d H:i:s')."|登录失败|第".$fail_info."次|".$user."|运行时间:".$run_time_str;
file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND); file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND);
// 服务器被限制访问
if(strpos($console_str, '当前页面URL') == false){
// 写入被禁用服务器文件
$ban_server_info = @$arr_ban_server_info[0]+1;
file_put_contents($ban_server_file, $ban_server_info . PHP_EOL);
// 记录日志
$str_log = date('Y-m-d H:i:s')."|服务器被禁用|".$user."|运行时间:".$run_time_str;
file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND);
}
}else{ }else{
// 记录日志 // 记录日志
$str_log = date('Y-m-d H:i:s')."|登录成功|".$user."|运行时间:".$run_time_str; $str_log = date('Y-m-d H:i:s')."|登录成功|".$user."|运行时间:".$run_time_str;
@ -110,6 +146,7 @@ try{
unlink($need_login_file); unlink($need_login_file);
@unlink($fail_login_file); @unlink($fail_login_file);
@unlink($ban_file); @unlink($ban_file);
@unlink($ban_server_file);
} }
system("pkill -9 chrome"); system("pkill -9 chrome");
$sec = rand(100,245); $sec = rand(100,245);

Loading…
Cancel
Save