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?
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?
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)
Nie przetestowałem jeszcze 'ClientConn'. Ale wierzę, że to jest odpowiedź. Dziękuję Ci – Max
Niezupełnie (połączenia są łączone w Transport). Co właściwie musisz zrobić? – JimB
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