fix(backend): add path validation to DeleteMod and improve GetLog security

- DeleteMod now validates path prefix against SERVERFILE_DIR and MODS_DIR
  before allowing deletion (prevents arbitrary directory deletion)
- GetLog uses strings.ContainsAny for cross-platform path traversal check
This commit is contained in:
MrFastwind
2026-07-23 20:15:06 +02:00
parent d55200886b
commit 9f232b5225
2 changed files with 15 additions and 2 deletions
+1 -1
View File
@@ -170,7 +170,7 @@ func findLatestRPT(dir string) string {
func (h *Handler) GetLog(c *gin.Context) {
filename := filepath.Base(c.Param("file"))
if filename == "" || strings.ContainsRune(c.Param("file"), os.PathSeparator) {
if filename == "" || filename == "." || strings.ContainsAny(filename, "/\\") {
c.JSON(http.StatusBadRequest, gin.H{"error": "invalid filename"})
return
}