Compare commits

...

2 Commits

  1. 11
      api/send_user.php
  2. 55
      crontab/crosscheck_auto_shell_v2.php
  3. 70
      crontab/del_file.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'; // 已登录的账号文件
$ban_file = __DIR__ . '/../cookie_file/ban_'.$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)){
exit('ban');
}
// 检测是否错误登录超过5次
// 检测是否被禁用服务器
if(file_exists($ban_server_file)){
exit('server_ban');
}
// 检测是否错误登录超过15次
if(file_exists($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');
}
}

55
crontab/crosscheck_auto_shell_v2.php

@ -25,8 +25,19 @@ try{
foreach($list as $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)){
@ -42,14 +53,28 @@ try{
continue;
}
}
// 获得文件内容
$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]);
// 检测是否被禁用服务器
if(file_exists($ban_server_file)){
$ban_server_limit_times = 3;
// 获得文件的创建时间
$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_path = __DIR__ . '/../cookie_file/'.$user.'.txt';
@ -101,6 +126,17 @@ try{
// 记录日志
$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);
// 服务器被限制访问
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{
// 记录日志
@ -110,6 +146,7 @@ try{
unlink($need_login_file);
@unlink($fail_login_file);
@unlink($ban_file);
@unlink($ban_server_file);
}
system("pkill -9 chrome");
$sec = rand(100,245);

70
crontab/del_file.php

@ -0,0 +1,70 @@
<?php
// 清除cookie_file目录下所有文件
$dir = __DIR__ . '/../cookie_file/';
$list = scandir($dir);
foreach($list as $v) {
if($v == '.' || $v == '..') {
continue;
}
echo $dir.$v.PHP_EOL;
// 服务器被禁 server_ban.txt 文件
if($v == 'server_ban.txt') {
continue;
}
// 停用账号 ban_* 账号文件
if(strpos($v, 'ban_') === 0) {
// 时间超过3小时
if(filemtime($dir.$v) < time()-3600*3){
$arr_file_name = explode('_', $v);
$user = $arr_file_name[1];
$need_login_file = $dir.'needlogin_'.$user;
//unlink($need_login_file);
//改名
rename($need_login_file, str_replace('needlogin_', 'del_needlogin_', $need_login_file));
$fail_login_file = $dir.'fail_'.$user;
//unlink($fail_login_file);
//改名
rename($fail_login_file, str_replace('fail_', 'del_fail_', $fail_login_file));
//unlink($dir.$v);
rename($dir.$v, str_replace('ban_', 'del_ban_', $dir.$v));
// 记录日志
$str_log = date('Y-m-d H:i:s')."|删除停用账号文件|".$user;
file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND);
}
}
// 登录失败 fail_* 账号文件
if(strpos($v, 'fail_') === 0) {
$arr_fail_info = explode("\n", file_get_contents($dir.$v));
if($arr_fail_info[0]+0 >=15) {
// 时间超过2小时
if(filemtime($dir.$v) < time()-3600*2) {
$arr_file_name = explode('_', $v);
$user = $arr_file_name[1];
$need_login_file = $dir.'needlogin_'.$user;
//unlink($need_login_file);
//改名
rename($need_login_file, str_replace('needlogin_', 'del_needlogin_', $need_login_file));
$fail_login_file = $dir.'fail_'.$user;
//unlink($fail_login_file);
//改名
rename($fail_login_file, str_replace('fail_', 'del_fail_', $fail_login_file));
//unlink($dir.$v);
rename($dir.$v, str_replace('fail_', 'del_fail_', $dir.$v));
// 记录日志
$str_log = date('Y-m-d H:i:s')."|删除登录失败账号文件|".$user;
file_put_contents($log_file, $str_log . PHP_EOL, FILE_APPEND);
}
}
}
}
Loading…
Cancel
Save