Contains the Concourse pipeline definition for building a line-server container
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

24 lines
464 B

  1. package main
  2. import (
  3. "net/http"
  4. "strings"
  5. )
  6. func strictReferrerCheck(r *http.Request, prefix string, whitelistHeaders []string) bool {
  7. for _, header := range whitelistHeaders {
  8. if r.Header.Get(header) != "" {
  9. return true
  10. }
  11. }
  12. if referrer := r.Header.Get("Referer"); !strings.HasPrefix(referrer, prefix) {
  13. return false
  14. }
  15. if origin := r.Header.Get("Origin"); origin != "" && !strings.HasPrefix(origin, prefix) {
  16. return false
  17. }
  18. return true
  19. }