Przeglądaj źródła

Change Forbidden logic & simplify VNet Logs

BrettonYe 1 rok temu
rodzic
commit
5554c831c1

+ 36 - 32
app/Http/Middleware/isForbidden.php

@@ -27,47 +27,51 @@ class isForbidden
 
         // 拒绝通过订阅链接域名访问网站,防止网站被探测
         if (config('app.env') === 'production' && sysConfig('website_url') && ! str_contains(sysConfig('website_url'), $request->getHost())) {
-            Log::warning('识别到通过订阅链接访问,强制跳转至百度('.IP::getClientIp().')');
+            Log::warning('识别到通过订阅链接访问,强制跳转至百度('.IP::getClientIp().') '.$request->fullUrl());
 
             return redirect('https://www.baidu.com');
         }
 
-        $ip = IP::getClientIP();
-        $ipLocation = IP::getIPInfo($ip);
+        if (sysConfig('forbid_mode')) {
+            $ip = IP::getClientIP();
+            $ipLocation = IP::getIPInfo($ip);
 
-        if ($ipLocation !== false) {
-            // 拒绝无IP请求
-            if (empty($ipLocation) || empty(array_filter($ipLocation))) {
-                return Response::view('auth.error', ['message' => trans('errors.forbidden.access')], 403);
-            }
+            if ($ipLocation !== false) {
+                // 拒绝无IP请求
+                if (empty($ipLocation) || empty(array_filter($ipLocation))) {
+                    Log::warning("无法识别到IP,拒绝访问:$ip");
+
+                    return Response::view('auth.error', ['message' => trans('errors.forbidden.access')], 403);
+                }
 
-            if (! in_array($ipLocation['country'], ['本机地址', '局域网']) && sysConfig('forbid_mode')) {
-                // 拒绝大陆IP访问
-                switch (sysConfig('forbid_mode')) {
-                    case 'ban_mainland':
-                        if (in_array($ipLocation['country'], ['China', '中国', 'CN']) && ! in_array($ipLocation['region'], ['香港', '澳门', '台湾', '台湾省'])) {
-                            Log::warning('识别到大陆IP,拒绝访问:'.$ip);
+                if (! in_array($ipLocation['country'], ['本机地址', '局域网'])) {
+                    // 拒绝大陆IP访问
+                    switch (sysConfig('forbid_mode')) {
+                        case 'ban_mainland':
+                            if (in_array($ipLocation['country'], ['China', '中国', 'CN']) && ! in_array($ipLocation['region'], ['Taiwan', 'Hong Kong', 'Macao', '香港', '澳门', '台湾', '台湾省'])) {
+                                Log::warning("识别到大陆IP,拒绝访问:$ip");
 
-                            return Response::view('auth.error', ['message' => trans('errors.forbidden.china')], 403);
-                        }
-                        break;
-                    case 'ban_china':
-                        if (in_array($ipLocation['country'], ['China', '中国', 'Taiwan', 'Hong Kong', 'Macao'])) {
-                            Log::warning('识别到中国IP,拒绝访问:'.$ip);
+                                return Response::view('auth.error', ['message' => trans('errors.forbidden.china')], 403);
+                            }
+                            break;
+                        case 'ban_china':
+                            if (in_array($ipLocation['country'], ['China', '中国', 'Taiwan', 'Hong Kong', 'Macao', '香港', '台湾', '澳门'])) {
+                                Log::warning("识别到中国IP,拒绝访问:$ip");
 
-                            return Response::view('auth.error', ['message' => trans('errors.forbidden.china')], 403);
-                        }
-                        break;
-                    case 'ban_oversea':
-                        if (! in_array($ipLocation['country'], ['China', '中国', 'Taiwan', 'Hong Kong', 'Macao'])) {
-                            Log::warning('识别到海外IP,拒绝访问:'.$ip.' - '.$ipLocation['country']);
+                                return Response::view('auth.error', ['message' => trans('errors.forbidden.china')], 403);
+                            }
+                            break;
+                        case 'ban_oversea':
+                            if (! in_array($ipLocation['country'], ['China', '中国', 'Taiwan', 'Hong Kong', 'Macao', '香港', '台湾', '澳门'])) {
+                                Log::warning("识别到海外IP,拒绝访问:$ip - ".$ipLocation['country']);
 
-                            return Response::view('auth.error', ['message' => trans('errors.forbidden.oversea')], 403);
-                        }
-                        break;
-                    default:
-                        Log::emergency('未知禁止访问模式!请在系统设置中修改【禁止访问模式】!');
-                        break;
+                                return Response::view('auth.error', ['message' => trans('errors.forbidden.oversea')], 403);
+                            }
+                            break;
+                        default:
+                            Log::emergency('未知禁止访问模式!请在系统设置中修改【禁止访问模式】!');
+                            break;
+                    }
                 }
             }
         }

+ 2 - 6
app/Jobs/VNet/addUser.php

@@ -64,12 +64,8 @@ class addUser implements ShouldQueue
         try {
             $response = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret])->post('api/v2/user/add/list', $this->data);
             $message = $response->json();
-            if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) {
-                if ($message['success'] === 'false') {
-                    Log::alert("【新增用户】推送失败(推送地址:{$host},返回内容:".$message['content'].')');
-                } else {
-                    Log::notice("【新增用户】推送成功(推送地址:{$host},内容:".json_encode($this->data, JSON_THROW_ON_ERROR | JSON_PRETTY_PRINT).')');
-                }
+            if ($message && Arr::has($message, ['success', 'content']) && $message['success'] === 'false') {
+                Log::alert("【新增用户】推送失败(推送地址:{$host},返回内容:".$message['content'].')');
             }
         } catch (Exception $exception) {
             Log::alert('【新增用户】推送异常:'.$exception->getMessage());

+ 2 - 6
app/Jobs/VNet/delUser.php

@@ -58,12 +58,8 @@ class delUser implements ShouldQueue
             }
 
             $message = $response->json();
-            if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) {
-                if ($message['success'] === 'false') {
-                    Log::alert("【删除用户】推送失败(推送地址:{$host},返回内容:".$message['content'].')');
-                } else {
-                    Log::notice("【删除用户】推送成功(推送地址:{$host},内容:".json_encode($this->userIds, true).')');
-                }
+            if ($message && Arr::has($message, ['success', 'content']) && $message['success'] === 'false') {
+                Log::alert("【删除用户】推送失败(推送地址:{$host},返回内容:".$message['content'].')');
             }
         } catch (Exception $exception) {
             Log::alert('【删除用户】推送异常:'.$exception->getMessage());

+ 2 - 6
app/Jobs/VNet/editUser.php

@@ -67,12 +67,8 @@ class editUser implements ShouldQueue
         try {
             $response = Http::baseUrl($host)->timeout(20)->withHeaders(['secret' => $secret])->post('api/user/edit', $this->data);
             $message = $response->json();
-            if ($message && Arr::has($message, ['success', 'content']) && $response->ok()) {
-                if ($message['success'] === 'false') {
-                    Log::warning("【编辑用户】推送失败(推送地址:{$host},返回内容:".$message['content'].')');
-                } else {
-                    Log::info("【编辑用户】推送成功(推送地址:{$host},内容:".json_encode($this->data, true).')');
-                }
+            if ($message && Arr::has($message, ['success', 'content']) && $message['success'] === 'false') {
+                Log::warning("【编辑用户】推送失败(推送地址:{$host},返回内容:".$message['content'].')');
             }
         } catch (Exception $exception) {
             Log::alert('【编辑用户】推送异常:'.$exception->getMessage());