@cryptotaxi247 / kubo / commits / 76f3395ee

p2p-proxy: earlier peerID validation check

Adin Schmahmann committed Dec 1, 2020 at 11:02 UTC 76f3395ee6c455679d2659a3e1281a98fb3050ec
2 files changed +11 -1
core/corehttp/p2p_proxy.go
+5
@@ -9,6 +9,7 @@ import (
9 "strings"
10
11 core "github.com/ipfs/go-ipfs/core"
12 + peer "github.com/libp2p/go-libp2p-core/peer"
13
14 protocol "github.com/libp2p/go-libp2p-core/protocol"
15 p2phttp "github.com/libp2p/go-libp2p-http"
@@ -60,6 +61,10 @@ func parseRequest(request *http.Request) (*proxyRequest, error) {
61 return nil, fmt.Errorf("Invalid request path '%s'", path)
62 }
63
64 + if _, err := peer.Decode(split[2]); err != nil {
65 + return nil, fmt.Errorf("Invalid request path '%s'", path)
66 + }
67 +
68 if split[3] == "http" {
69 return &proxyRequest{split[2], protocol.ID("/http"), split[4]}, nil
70 }
test/sharness/t0184-http-proxy-over-p2p.sh
+6 -1
@@ -194,7 +194,12 @@ test_expect_success 'handle proxy http request invalid request' '
194 '
195
196 test_expect_success 'handle proxy http request unknown proxy peer ' '
197 - curl_check_response_code 502 p2p/unknown_peer/http/index.txt
197 + UNKNOWN_PEER="k51qzi5uqu5dlmbel1sd8rs4emr3bfosk9bm4eb42514r4lakt4oxw3a3fa2tm" &&
198 + curl_check_response_code 502 p2p/$UNKNOWN_PEER/http/index.txt
199 +'
200 +
201 +test_expect_success 'handle proxy http request to invalid proxy peer ' '
202 + curl_check_response_code 400 p2p/invalid_peer/http/index.txt
203 '
204
205 test_expect_success 'handle proxy http request to custom protocol' '