From 3839debcf5ca7a66f73f4af769bc4bfb96fe4ff4 Mon Sep 17 00:00:00 2001 From: xiaoz Date: Tue, 17 Dec 2024 16:33:11 +0800 Subject: [PATCH] update --- class/Api.php | 40 ++++++++++++++++++++++++++++++++------- controller/admin.php | 3 +++ controller/login.php | 2 ++ functions/helper.php | 2 +- templates/admin/login.php | 2 +- 5 files changed, 40 insertions(+), 9 deletions(-) diff --git a/class/Api.php b/class/Api.php index 9dd8f25..f0432cf 100755 --- a/class/Api.php +++ b/class/Api.php @@ -2693,17 +2693,43 @@ class Api { // 获取当前时间戳 $last_checked_time = date('Y-m-d H:i:s'); - // 判断链接是否有效,HTTP状态码大于400视为异常,超时或其他错误也视为异常 + // 定义 Web 服务器列表 + $web_servers = [ + 'cloudflare', + 'waf', + // 可以根据需要添加更多的 Web 服务器类型 + 'AkamaiGHost', + 'JDCloudStarshield' + ]; + + // 假设 $error 和 $http_code 已经定义 + // 假设 $server_header 已经从响应头中获取 + if ($error || $http_code >= 400) { - // 判断Server头中是否包含cloudflare和waf,不区分大小写 - if (stripos($server_header, 'cloudflare') !== false || stripos($server_header, 'waf') !== false) { - $check_status = 3; // 未知 - } else { - $check_status = 2; // 异常 + // 默认状态为异常 + $check_status = 2; // 异常 + // 遍历 Web 服务器列表,检查是否包含任何已知的 Web 服务器标识 + foreach ($web_servers as $server) { + if (stripos($server_header, $server) !== false) { + // 如果找到匹配的服务器,设置为未知状态 + $check_status = 3; // 未知 + break; // 一旦找到匹配的服务器,跳出循环 + } + } + // 如果没有匹配到任何已知的 Web 服务器,则认为是异常 + if ($check_status == 2) { // 错误数量+1 $error_num++; } - } else { + } + else if( $http_code === 0 ) { + // HTTP 状态码为 0,表示链接超时,或者SSL证书过期 + $check_status = 2; // 异常 + // 错误数量+1 + $error_num++; + } + else { + // HTTP 状态码小于 400,表示正常 $check_status = 1; // 正常 } diff --git a/controller/admin.php b/controller/admin.php index facdff3..a44fd75 100755 --- a/controller/admin.php +++ b/controller/admin.php @@ -5,6 +5,9 @@ // 载入辅助函数 require('functions/helper.php'); +// 检查明文密码 +unSafe(); + //检查认证 check_auth($site_setting['user'],$site_setting['password']); diff --git a/controller/login.php b/controller/login.php index e017d45..ffe5f59 100755 --- a/controller/login.php +++ b/controller/login.php @@ -5,6 +5,8 @@ // 载入辅助函数 require('functions/helper.php'); +// 检查明文密码 +unSafe(); $username = $site_setting['user']; // 加密后的密码 diff --git a/functions/helper.php b/functions/helper.php index 05f8a5f..22e6d54 100755 --- a/functions/helper.php +++ b/functions/helper.php @@ -234,6 +234,6 @@ function unSafe() { $password = PASSWORD; if( isset($password) && $password !== 'PASSWORD' ) { - exit("由于安全升级,请删除站点目录下的 data/config.php 文件后,重新完成初始化!"); + exit("由于安全升级,请删除站点目录下的 data/config.php 文件后,重新完成初始化,此操作不会影响数据!"); } } \ No newline at end of file diff --git a/templates/admin/login.php b/templates/admin/login.php index 46594b9..249b444 100755 --- a/templates/admin/login.php +++ b/templates/admin/login.php @@ -64,7 +64,7 @@
忘记密码?
- +