From 65e2c1ef21016b4d843ddb8e1ee18b13fa74466d Mon Sep 17 00:00:00 2001 From: snakem982 Date: Fri, 4 Oct 2024 21:37:30 +0800 Subject: [PATCH] improvement: clash api security --- backend/meta/meta.go | 7 +++++++ backend/spider/spider.go | 7 +++++++ frontend/src/views/Profile.vue | 8 +++++++- 3 files changed, 21 insertions(+), 1 deletion(-) diff --git a/backend/meta/meta.go b/backend/meta/meta.go index b6a64cb..f2e872b 100644 --- a/backend/meta/meta.go +++ b/backend/meta/meta.go @@ -24,6 +24,7 @@ import ( "runtime" "strings" "sync" + "time" ) //go:embed geoip.metadb @@ -205,5 +206,11 @@ func StartCore(profile resolve.Profile, reload bool) { NowConfig.General.MixedPort = freePort } + // 垃圾回收 + go func() { + time.Sleep(3 * time.Minute) + runtime.GC() + }() + executor.ApplyConfig(NowConfig, true) } diff --git a/backend/spider/spider.go b/backend/spider/spider.go index 3d4c5b0..38903ee 100644 --- a/backend/spider/spider.go +++ b/backend/spider/spider.go @@ -25,6 +25,7 @@ import ( "pandora-box/backend/premium" "pandora-box/backend/tools" "path/filepath" + "runtime" "sort" "strings" "sync" @@ -106,6 +107,12 @@ func Crawl() bool { // 清理realIp缓存 go cleanRealIpCache() + // 垃圾回收 + go func() { + time.Sleep(2 * time.Minute) + runtime.GC() + }() + return true } diff --git a/frontend/src/views/Profile.vue b/frontend/src/views/Profile.vue index 87628ca..092a916 100644 --- a/frontend/src/views/Profile.vue +++ b/frontend/src/views/Profile.vue @@ -7,7 +7,7 @@ import {ClipboardGetText, ClipboardSetText} from "../../wailsjs/runtime"; import {mdiDownload, mdiFileReplace, mdiFolderOpen} from "@mdi/js"; import SvgIcon from "@jamescoyle/vue-icon"; import {useRouter} from "vue-router"; -import {GetFreePort} from "../../wailsjs/go/main/App"; +import {GetFreePort, GetSecret} from "../../wailsjs/go/main/App"; const subOrShare = ref('') const drawer = ref(false) @@ -94,11 +94,16 @@ async function delProfile(id: string) { } const uploadUrl = ref('') +const uploadHeader = reactive({ + Authorization: '' +}) onMounted(async () => { await getProfile() const host = await GetFreePort() uploadUrl.value = "http://" + host + "/profile/file" + const secret = await GetSecret() + uploadHeader.Authorization = 'Bearer ' + secret }) const toolFormVisible = ref(false) @@ -420,6 +425,7 @@ function toCrawl() { :on-error="uploadError" :on-success="uploadSuccess" ref="drawerUpload" + :headers = uploadHeader >