diff --git a/proxy/vmess/encoding/encoding_test.go b/proxy/vmess/encoding/encoding_test.go index 0eabe98a5..ea2e999cc 100644 --- a/proxy/vmess/encoding/encoding_test.go +++ b/proxy/vmess/encoding/encoding_test.go @@ -41,6 +41,9 @@ func TestRequestSerialization(t *testing.T) { client := NewClientSession(protocol.DefaultIDHash) client.EncodeRequestHeader(expectedRequest, buffer) + buffer2 := buf.New() + buffer2.Append(buffer.Bytes()) + ctx, cancel := context.WithCancel(context.Background()) userValidator := vmess.NewTimedUserValidator(ctx, protocol.DefaultIDHash) userValidator.Add(user) @@ -55,5 +58,10 @@ func TestRequestSerialization(t *testing.T) { assert.Address(expectedRequest.Address).Equals(actualRequest.Address) assert.Port(expectedRequest.Port).Equals(actualRequest.Port) assert.Byte(byte(expectedRequest.Security)).Equals(byte(actualRequest.Security)) + + _, err = server.DecodeRequestHeader(buffer2) + // anti reply attack + assert.Error(err).IsNotNil() + cancel() }