Skip to content

Commit 15c4910

Browse files
committed
webdav访问域名添加随机hub-id避免服务器探测
1 parent 5dd30ed commit 15c4910

2 files changed

Lines changed: 50 additions & 0 deletions

File tree

cmd/lcode-hub/config.go

Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
package main
2+
3+
import (
4+
"github.com/lainio/err2"
5+
. "github.com/lainio/err2/try"
6+
"xorm.io/xorm"
7+
)
8+
9+
type Config struct {
10+
Id int64
11+
Name string `xorm:"notnull unique"`
12+
Value string
13+
}
14+
15+
func getConfig(db *xorm.Engine, name string, defaultValueGen func() string) (value string, err error) {
16+
defer err2.Handle(&err)
17+
var c Config = Config{Name: name}
18+
session := db.NewSession()
19+
defer session.Close()
20+
has := To1(db.Get(&c))
21+
if !has {
22+
c.Value = defaultValueGen()
23+
To1(db.InsertOne(&c))
24+
}
25+
To(session.Commit())
26+
value = c.Value
27+
return
28+
}

cmd/lcode-hub/main.go

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ package main
33
import (
44
"bytes"
55
"context"
6+
"crypto/rand"
7+
"encoding/hex"
68
"flag"
79
"fmt"
810
"io"
@@ -37,6 +39,7 @@ var args struct {
3739
addr string
3840
localdomain string
3941
logLv string
42+
hubID string
4043
}
4144

4245
var VERSION = "dev"
@@ -48,6 +51,7 @@ func init() {
4851
f.StringVar(&args.hello, "hello", "webdav://{{.host}}.lo.shynome.com:4349{{.path}}", "")
4952
f.StringVar(&args.localdomain, "localdomain", ".lo.shynome.com", "")
5053
f.StringVar(&args.logLv, "log", defaultLogLv, "日志输出等级: 0 - 不输出; 1 - Error; 11 - Info; 111 - Debug")
54+
f.StringVar(&args.hubID, "hub-id", "", "是否其用hub-id, 避免服务器上的文件被探测. 0 关闭")
5155
}
5256

5357
var tracer = otel.Tracer("lcode-hub")
@@ -67,6 +71,24 @@ func main() {
6771
To(os.MkdirAll(lcodeDir, os.ModePerm))
6872
db := To1(xorm.NewEngine("sqlite", filepath.Join(lcodeDir, "lcode.db")))
6973
To(hub.Sync(db))
74+
To(db.Sync2(new(Config)))
75+
76+
if args.hubID != "0" {
77+
nf := flag.NewFlagSet("locde-hub@id-get", flag.ContinueOnError)
78+
nf.SetOutput(&bytes.Buffer{})
79+
if len(args.hubID) == 0 {
80+
v := To1(getConfig(db, "hub-id", func() string {
81+
b := make([]byte, 3)
82+
rand.Read(b)
83+
s := hex.EncodeToString(b)
84+
return s
85+
}))
86+
args.hubID = v
87+
}
88+
nf.StringVar(&args.hello, "hello", fmt.Sprintf("webdav://{{.host}}-%s.lo.shynome.com:4349{{.path}}", args.hubID), "")
89+
nf.StringVar(&args.localdomain, "localdomain", fmt.Sprintf("-%s.lo.shynome.com", args.hubID), "")
90+
nf.Parse(os.Args[1:])
91+
}
7092

7193
l := To1(net.Listen("tcp", args.addr))
7294
defer l.Close()

0 commit comments

Comments
 (0)