@@ -992,7 +992,10 @@ func Benchmark_Middleware_CSRF_Check(b *testing.B) {
992
992
return c .SendStatus (fiber .StatusTeapot )
993
993
})
994
994
995
- fctx := & fasthttp.RequestCtx {}
995
+ app .Post ("/" , func (c * fiber.Ctx ) error {
996
+ return c .SendStatus (fiber .StatusTeapot )
997
+ })
998
+
996
999
h := app .Handler ()
997
1000
ctx := & fasthttp.RequestCtx {}
998
1001
@@ -1002,17 +1005,27 @@ func Benchmark_Middleware_CSRF_Check(b *testing.B) {
1002
1005
token := string (ctx .Response .Header .Peek (fiber .HeaderSetCookie ))
1003
1006
token = strings .Split (strings .Split (token , ";" )[0 ], "=" )[1 ]
1004
1007
1008
+ // Test Correct Referer POST
1009
+ ctx .Request .Reset ()
1010
+ ctx .Response .Reset ()
1005
1011
ctx .Request .Header .SetMethod (fiber .MethodPost )
1012
+ ctx .Request .Header .Set (fiber .HeaderXForwardedProto , "https" )
1013
+ ctx .Request .URI ().SetScheme ("https" )
1014
+ ctx .Request .URI ().SetHost ("example.com" )
1015
+ ctx .Request .Header .SetProtocol ("https" )
1016
+ ctx .Request .Header .SetHost ("example.com" )
1017
+ ctx .Request .Header .Set (fiber .HeaderReferer , "https://example.com" )
1006
1018
ctx .Request .Header .Set (HeaderName , token )
1019
+ ctx .Request .Header .SetCookie (ConfigDefault .CookieName , token )
1007
1020
1008
1021
b .ReportAllocs ()
1009
1022
b .ResetTimer ()
1010
1023
1011
1024
for n := 0 ; n < b .N ; n ++ {
1012
- h (fctx )
1025
+ h (ctx )
1013
1026
}
1014
1027
1015
- utils .AssertEqual (b , fiber .StatusTeapot , fctx .Response .Header .StatusCode ())
1028
+ utils .AssertEqual (b , fiber .StatusTeapot , ctx .Response .Header .StatusCode ())
1016
1029
}
1017
1030
1018
1031
// go test -v -run=^$ -bench=Benchmark_Middleware_CSRF_GenerateToken -benchmem -count=4
@@ -1024,7 +1037,6 @@ func Benchmark_Middleware_CSRF_GenerateToken(b *testing.B) {
1024
1037
return c .SendStatus (fiber .StatusTeapot )
1025
1038
})
1026
1039
1027
- fctx := & fasthttp.RequestCtx {}
1028
1040
h := app .Handler ()
1029
1041
ctx := & fasthttp.RequestCtx {}
1030
1042
@@ -1034,8 +1046,9 @@ func Benchmark_Middleware_CSRF_GenerateToken(b *testing.B) {
1034
1046
b .ResetTimer ()
1035
1047
1036
1048
for n := 0 ; n < b .N ; n ++ {
1037
- h (fctx )
1049
+ h (ctx )
1038
1050
}
1039
1051
1040
- utils .AssertEqual (b , fiber .StatusTeapot , fctx .Response .Header .StatusCode ())
1052
+ // Ensure the GET request returns a 418 status code
1053
+ utils .AssertEqual (b , fiber .StatusTeapot , ctx .Response .Header .StatusCode ())
1041
1054
}
0 commit comments