1
0
mirror of https://github.com/v2fly/v2ray-core.git synced 2024-06-11 18:30:43 +00:00

Fix: secured loading path under windows (#851)

* Fix: secured loading path under windows

* fix sign file foramts
This commit is contained in:
Kslr 2021-04-04 16:32:42 +08:00 committed by GitHub
parent ae840dca6f
commit b8af713998
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 7 additions and 7 deletions

View File

@ -7,6 +7,7 @@ import (
"context"
"io"
"net/http"
"path/filepath"
"time"
"github.com/v2fly/BrowserBridge/handler"
@ -79,7 +80,7 @@ func BridgeResource(rw http.ResponseWriter, r *http.Request, path string) {
if content == "" {
content = "index.html"
}
data, err := securedload.GetAssetSecured("browserforwarder/" + content)
data, err := securedload.GetAssetSecured(filepath.Join("browserforwarder", content))
if err != nil {
err = newError("cannot load necessary resources").Base(err)
http.Error(rw, err.Error(), http.StatusForbidden)

View File

@ -20,16 +20,16 @@ type EmbeddedHashProtectedLoader struct {
func (e EmbeddedHashProtectedLoader) VerifyAndLoad(filename string) ([]byte, error) {
platformFileName := filepath.FromSlash(filename)
filecontent, err := filesystem.ReadFile(platform.GetAssetLocation(platformFileName))
fileContent, err := filesystem.ReadFile(platform.GetAssetLocation(platformFileName))
if err != nil {
return nil, newError("Cannot find file", filename).Base(err)
}
fileHash := sha256.Sum256(filecontent)
fileHash := sha256.Sum256(fileContent)
fileHashAsString := hex.EncodeToString(fileHash[:])
if filenameverified, ok := e.checkedFile[fileHashAsString]; ok {
for _, filenameVerifiedIndividual := range strings.Split(filenameverified, ";") {
if fileNameVerified, ok := e.checkedFile[fileHashAsString]; ok {
for _, filenameVerifiedIndividual := range strings.Split(fileNameVerified, ";") {
if strings.HasSuffix(filenameVerifiedIndividual, filename) {
return filecontent, nil
return fileContent, nil
}
}
}

View File

@ -1,7 +1,6 @@
package securedload
func GetAssetSecured(name string) ([]byte, error) {
var err error
for k, v := range knownProtectedLoader {
loadedData, errLoad := v.VerifyAndLoad(name)