Skip to content
This repository has been archived by the owner on Mar 26, 2021. It is now read-only.

Commit

Permalink
防止Unzip文件恶意攻击
Browse files Browse the repository at this point in the history
  • Loading branch information
lealife committed Oct 27, 2016
1 parent 7ab737a commit a57f780
Show file tree
Hide file tree
Showing 4 changed files with 1,118 additions and 1,103 deletions.
28 changes: 18 additions & 10 deletions src/github.com/leanote/leanote/app/lea/Debug.go
Original file line number Diff line number Diff line change
@@ -1,26 +1,34 @@
package lea

import (
"encoding/json"
"fmt"
"github.com/revel/revel"
"encoding/json"
"fmt"
"github.com/revel/revel"
)

func Log(i interface{}) {
revel.INFO.Println(i)
func Log(i ...interface{}) {
revel.INFO.Println(i...)
}

func LogW(i ...interface{}) {
revel.WARN.Println(i...)
}

func Log1(key, i interface{}) {
revel.INFO.Println(key, i)
}

func LogJ(i interface{}) {
b, _ := json.MarshalIndent(i, "", " ")
revel.INFO.Println(string(b))
b, _ := json.MarshalIndent(i, "", " ")
revel.INFO.Println(string(b))
}

// 为test用
func L(i interface{}) {
fmt.Println(i)
fmt.Println(i)
}

func LJ(i interface{}) {
b, _ := json.MarshalIndent(i, "", " ")
fmt.Println(string(b))
b, _ := json.MarshalIndent(i, "", " ")
fmt.Println(string(b))
}
9 changes: 8 additions & 1 deletion src/github.com/leanote/leanote/app/lea/archive/zip.go
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@ import (
"os"
"path"
"strings"
"github.com/leanote/leanote/app/lea"
)

// main functions shows how to TarGz a directory/file and
Expand Down Expand Up @@ -144,12 +145,18 @@ func Unzip(srcFilePath string, destDirPath string) (ok bool, msg string) {
}
defer r.Close()
for _, f := range r.File {
// fmt.Println("FileName : ", f.Name); // j/aaa.zip
// fmt.Println("FileName : ", f.Name); // j/aaa.zip
rc, err := f.Open()
if err != nil {
panic(err)
}

// 包含恶意目录
if strings.Contains(f.Name, "../") {
lea.LogW("恶意文件", f.Name);
continue
}

// 把首文件夹去掉, 即j去掉, 分离出文件夹和文件名
paths := strings.Split(f.Name, "/")
prePath := ""
Expand Down
Loading

0 comments on commit a57f780

Please sign in to comment.