Home / Function/ refererMatchesHost() — fiber Function Reference

refererMatchesHost() — fiber Function Reference

Architecture documentation for the refererMatchesHost() function in csrf.go from the fiber codebase.

Entity Profile

Dependency Diagram

graph TD
  8e520adf_724d_ccaf_25dc_1249dfbbf5bb["refererMatchesHost()"]
  57b9eed3_6274_c073_f0db_e3c30b2a59fe["csrf.go"]
  8e520adf_724d_ccaf_25dc_1249dfbbf5bb -->|defined in| 57b9eed3_6274_c073_f0db_e3c30b2a59fe
  c524454a_687b_b78d_a451_724040543641["New()"]
  c524454a_687b_b78d_a451_724040543641 -->|calls| 8e520adf_724d_ccaf_25dc_1249dfbbf5bb
  style 8e520adf_724d_ccaf_25dc_1249dfbbf5bb fill:#6366f1,stroke:#818cf8,color:#fff

Relationship Graph

Source Code

middleware/csrf/csrf.go lines 371–399

func refererMatchesHost(c fiber.Ctx, trustedOrigins []string, trustedSubOrigins []subdomain) error {
	referer := utils.ToLower(c.Get(fiber.HeaderReferer))
	if referer == "" {
		return ErrRefererNotFound
	}

	refererURL, err := url.Parse(referer)
	if err != nil {
		return ErrRefererInvalid
	}

	if schemeAndHostMatch(refererURL.Scheme, refererURL.Host, c.Scheme(), c.Host()) {
		return nil
	}

	referer = refererURL.String()

	if slices.Contains(trustedOrigins, referer) {
		return nil
	}

	for _, trustedSubOrigin := range trustedSubOrigins {
		if trustedSubOrigin.match(referer) {
			return nil
		}
	}

	return ErrRefererNoMatch
}

Subdomains

Called By

Frequently Asked Questions

What does refererMatchesHost() do?
refererMatchesHost() is a function in the fiber codebase, defined in middleware/csrf/csrf.go.
Where is refererMatchesHost() defined?
refererMatchesHost() is defined in middleware/csrf/csrf.go at line 371.
What calls refererMatchesHost()?
refererMatchesHost() is called by 1 function(s): New.

Analyze Your Own Codebase

Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.

Try Supermodel Free