helpers.go — fiber Source File
Architecture documentation for helpers.go, a go file in the fiber codebase. 1 imports, 0 dependents.
Entity Profile
Dependency Diagram
graph LR fc745a0e_055f_91b6_3e1b_4c868fc3e71b["helpers.go"] 43499e51_764c_5fc0_2678_7dd126f182d4["subtle"] fc745a0e_055f_91b6_3e1b_4c868fc3e71b --> 43499e51_764c_5fc0_2678_7dd126f182d4 style fc745a0e_055f_91b6_3e1b_4c868fc3e71b fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
package csrf
import (
"crypto/subtle"
"net/url"
"strings"
"github.com/gofiber/utils/v2"
)
const (
schemeHTTP = "http"
schemeHTTPS = "https"
)
func compareTokens(a, b []byte) bool {
return subtle.ConstantTimeCompare(a, b) == 1
}
func compareStrings(a, b string) bool {
return subtle.ConstantTimeCompare(utils.UnsafeBytes(a), utils.UnsafeBytes(b)) == 1
}
func schemeAndHostMatch(schemeA, hostA, schemeB, hostB string) bool {
normalizedSchemeA := utils.ToLower(schemeA)
normalizedSchemeB := utils.ToLower(schemeB)
normalizedHostA := normalizeSchemeHost(normalizedSchemeA, hostA)
normalizedHostB := normalizeSchemeHost(normalizedSchemeB, hostB)
return normalizedSchemeA == normalizedSchemeB && normalizedHostA == normalizedHostB
}
func normalizeSchemeHost(scheme, host string) string {
host = utils.ToLower(host)
defaultPort := ""
switch scheme {
case schemeHTTP:
defaultPort = "80"
case schemeHTTPS:
defaultPort = "443"
default:
return host
}
parsedHost, err := url.Parse(scheme + "://" + host)
if err != nil {
return host
}
if port := parsedHost.Port(); port != "" {
return host
}
hostname := parsedHost.Hostname()
if hostname == "" {
return host
}
// ... (76 more lines)
Domain
Subdomains
Dependencies
- subtle
Source
Frequently Asked Questions
What does helpers.go do?
helpers.go is a source file in the fiber codebase, written in go. It belongs to the FiberMiddleware domain, Security subdomain.
What functions are defined in helpers.go?
helpers.go defines 5 function(s): compareStrings, compareTokens, normalizeOrigin, normalizeSchemeHost, schemeAndHostMatch.
What does helpers.go depend on?
helpers.go imports 1 module(s): subtle.
Where is helpers.go in the architecture?
helpers.go is located at middleware/csrf/helpers.go (domain: FiberMiddleware, subdomain: Security, directory: middleware/csrf).
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free