Skip to content

Commit 8a4d2c5

Browse files
committed
【优化】dockerfile构建
【优化】检测平台访问限制
1 parent 6010935 commit 8a4d2c5

2 files changed

Lines changed: 21 additions & 9 deletions

File tree

dockerfile

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -10,13 +10,18 @@ RUN apt-get update && apt-get install -y \
1010
&& rm -rf /var/lib/apt/lists/*
1111

1212
# 复制源代码
13-
COPY . .
13+
# 只需要三个文件 shieldml_scan.html 和 shieldml_server.go 和 bt-shieldml
14+
COPY shieldml_scan.html .
15+
COPY shieldml_server.go .
16+
COPY bt-shieldml .
17+
COPY go.mod .
1418

1519
# 安装Go依赖
16-
RUN go mod download
20+
# RUN go mod download
1721

1822
# 只编译shieldml_server
19-
RUN go build -tags netgo,osusergo -ldflags '-s -w -extldflags "-static"' -o shieldml_server ./shieldml_server.go
23+
RUN go mod tidy && \
24+
go build -tags netgo,osusergo -ldflags '-s -w -extldflags "-static"' -o shieldml_server ./shieldml_server.go
2025

2126
# 第二阶段:运行环境
2227
FROM debian:11-slim

shieldml_server.go

Lines changed: 13 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,14 +69,21 @@ func main() {
6969

7070
// 静态文件处理
7171
fileHandler := http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
72-
// 只允许访问shieldml_scan.html
73-
if r.URL.Path == "/" || r.URL.Path == "/index.html" {
74-
http.Redirect(w, r, "/shieldml_scan.html", http.StatusFound)
75-
} else if r.URL.Path == "/shieldml_scan.html" {
72+
// 允许访问API路径
73+
if strings.HasPrefix(r.URL.Path, "/api/") {
74+
// API 请求会在单独的处理器中处理,这里不做操作
75+
http.NotFound(w, r)
76+
return
77+
}
78+
79+
// 允许访问 shieldml_scan.html
80+
if r.URL.Path == "/shieldml_scan.html" {
7681
http.ServeFile(w, r, "shieldml_scan.html")
77-
} else {
78-
http.Error(w, "拒绝访问", http.StatusForbidden)
82+
return
7983
}
84+
85+
// 所有其他路径都重定向到 shieldml_scan.html
86+
http.Redirect(w, r, "/shieldml_scan.html", http.StatusFound)
8087
})
8188

8289
// 应用安全中间件

0 commit comments

Comments
 (0)