@@ -1336,6 +1336,38 @@ func Test_CSRF_TrustedOrigins(t *testing.T) {
13361336 ctx .Request .Header .SetCookie (ConfigDefault .CookieName , token )
13371337 h (ctx )
13381338 require .Equal (t , 403 , ctx .Response .StatusCode ())
1339+
1340+ // Test Trusted Referer with path — referer URL includes a path component
1341+ // which must not prevent matching against the trusted origin
1342+ ctx .Request .Reset ()
1343+ ctx .Response .Reset ()
1344+ ctx .Request .Header .SetMethod (fiber .MethodPost )
1345+ ctx .Request .Header .Set (fiber .HeaderXForwardedProto , "https" )
1346+ ctx .Request .URI ().SetScheme ("https" )
1347+ ctx .Request .URI ().SetHost ("example.com" )
1348+ ctx .Request .Header .SetProtocol ("https" )
1349+ ctx .Request .Header .SetHost ("example.com" )
1350+ ctx .Request .Header .Set (fiber .HeaderReferer , "https://safe.example.com/some/path?q=1" )
1351+ ctx .Request .Header .Set (HeaderName , token )
1352+ ctx .Request .Header .SetCookie (ConfigDefault .CookieName , token )
1353+ h (ctx )
1354+ require .Equal (t , 200 , ctx .Response .StatusCode ())
1355+
1356+ // Test Trusted Referer Wildcard with path — wildcard subdomain referer
1357+ // that includes a path must still match the trusted sub-origin
1358+ ctx .Request .Reset ()
1359+ ctx .Response .Reset ()
1360+ ctx .Request .Header .SetMethod (fiber .MethodPost )
1361+ ctx .Request .Header .Set (fiber .HeaderXForwardedProto , "https" )
1362+ ctx .Request .URI ().SetScheme ("https" )
1363+ ctx .Request .URI ().SetHost ("domain-1.com" )
1364+ ctx .Request .Header .SetProtocol ("https" )
1365+ ctx .Request .Header .SetHost ("domain-1.com" )
1366+ ctx .Request .Header .Set (fiber .HeaderReferer , "https://safe.domain-1.com/api/callback?code=abc" )
1367+ ctx .Request .Header .Set (HeaderName , token )
1368+ ctx .Request .Header .SetCookie (ConfigDefault .CookieName , token )
1369+ h (ctx )
1370+ require .Equal (t , 200 , ctx .Response .StatusCode ())
13391371}
13401372
13411373func Test_CSRF_TrustedOrigins_InvalidOrigins (t * testing.T ) {
0 commit comments