From 2af4b9569d20f11c0925335d9406810098fb666a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=80=97=E5=AD=90?= Date: Sun, 27 Oct 2024 00:02:29 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=B8=8D=E5=85=81=E8=AE=B8=E6=8A=8A?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=A4=8D=E5=88=B6=E5=88=B0=E5=8E=9F=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E4=B8=AD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- internal/service/file.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/service/file.go b/internal/service/file.go index 350f95f9..05bc4f14 100644 --- a/internal/service/file.go +++ b/internal/service/file.go @@ -179,6 +179,11 @@ func (s *FileService) Move(w http.ResponseWriter, r *http.Request) { return } + if io.IsDir(req.Source) && strings.HasPrefix(req.Target, req.Source) { + Error(w, http.StatusForbidden, "你不能这样做,会玩坏的") + return + } + if err = io.Mv(req.Source, req.Target); err != nil { Error(w, http.StatusInternalServerError, "%v", err) return @@ -199,6 +204,11 @@ func (s *FileService) Copy(w http.ResponseWriter, r *http.Request) { return } + if io.IsDir(req.Source) && strings.HasPrefix(req.Target, req.Source) { + Error(w, http.StatusForbidden, "你不能这样做,会玩坏的") + return + } + if err = io.Cp(req.Source, req.Target); err != nil { Error(w, http.StatusInternalServerError, "%v", err) return