summaryrefslogtreecommitdiff
path: root/srv/src/http/csrf.go
diff options
context:
space:
mode:
Diffstat (limited to 'srv/src/http/csrf.go')
-rw-r--r--srv/src/http/csrf.go43
1 files changed, 0 insertions, 43 deletions
diff --git a/srv/src/http/csrf.go b/srv/src/http/csrf.go
deleted file mode 100644
index a64e37e..0000000
--- a/srv/src/http/csrf.go
+++ /dev/null
@@ -1,43 +0,0 @@
-package http
-
-import (
- "errors"
- "net"
- "net/http"
- "net/url"
-
- "github.com/mediocregopher/blog.mediocregopher.com/srv/http/apiutil"
-)
-
-func checkCSRF(r *http.Request, publicURL *url.URL) error {
-
- if ipStr, _, err := net.SplitHostPort(r.Host); err == nil {
- if ip := net.ParseIP(ipStr); ip != nil && ip.IsLoopback() {
- return nil
- }
- }
-
- refererURL, err := url.Parse(r.Referer())
- if err != nil {
- return errors.New("invalid Referer")
- }
-
- if refererURL.Scheme != publicURL.Scheme ||
- refererURL.Host != publicURL.Host {
- return errors.New("invalid Referer")
- }
-
- return nil
-}
-
-func (a *api) checkCSRFMiddleware(h http.Handler) http.Handler {
- return http.HandlerFunc(func(rw http.ResponseWriter, r *http.Request) {
-
- if err := checkCSRF(r, a.params.PublicURL); err != nil {
- apiutil.BadRequest(rw, r, errors.New("invalid Referer"))
- return
- }
-
- h.ServeHTTP(rw, r)
- })
-}