package lkgateway import "testing" // M3: пути с выходом за корень или абсолютные должны отклоняться перед 7z x. func TestUnsafeArchivePath(t *testing.T) { unsafe := []string{ "../evil.txt", "../../etc/passwd", "a/../../b", "/etc/passwd", `\windows\system32`, "C:/Windows/x", `dir\..\..\x`, "..", } for _, p := range unsafe { if !unsafeArchivePath(p) { t.Errorf("должен быть отклонён: %q", p) } } safe := []string{ "boot/grub/grub.cfg", "isolinux/isolinux.bin", "a/b/c.txt", "file.iso", "dir/sub/..file", "a..b/c", "x.tar", } for _, p := range safe { if unsafeArchivePath(p) { t.Errorf("ложное срабатывание на безопасном пути: %q", p) } } }