2014-05-22 10 views
5

Przejmij kontrolę nad hakowaniem w języku http.Nawiąż połączenie klienta klienckiego.

Wiem, jak porwać po stronie serwera. http://golang.org/pkg/net/http/#example_Hijacker

Ale czy istnieje sposób na porwanie go po stronie klientów?

+0

Niezupełnie (połączenia są łączone w Transport). Co właściwie musisz zrobić? – JimB

+0

Mam go_client i go_server. Go_server to serwer WWW. Chciałbym, aby klient podłączył go_server do jakiegoś programu obsługi. a po jednym żądaniu HTTP komunikuje się z nim przez surowe gniazdo. Chciałbym, żeby klient przejął połączenie http. Oczywiście, jeśli to możliwe. na przykład jedną z rzeczy, które mogę zrobić, to HTTP proxy CONNECT zamiast GET. – Max

Odpowiedz

7

Nie, nie można tego zrobić z domyślnym http.Client, ale net/http/httputil ma ClientConn, która jest klientem http niski poziom, który bezpośrednio okłady net.Conn. Jest odporny na włamania i działa na standardowym http.Request.

http://golang.org/pkg/net/http/httputil/#ClientConn

Ponadto, ponieważ można kontrolować obie strony, i nie należy zbyt zobaczyć coś nieoczekiwanego, może łatwiej będzie po prostu napisać wniosek samodzielnie bezpośrednio do połączenia TCP (lub użyć Request.Write() jeśli chcesz zbuduj żądanie w ten sposób)

+0

Nie przetestowałem jeszcze 'ClientConn'. Ale wierzę, że to jest odpowiedź. Dziękuję Ci – Max

Powiązane problemy