Bezbednost: ispravka otvorene redirekcije (open redirect)

- podesavanja.go: _next parametar sada odbacuje putanje koje počinju sa "//"
  (npr. "//evil.com" prolazilo je staru proveru jer počinje sa "/")
- profil.go: Referer zaglavlje se parsira i koristi samo putanja (RequestURI),
  bez hosta — sprečava preusmeravanje na spoljne domene
This commit is contained in:
2026-06-16 03:09:06 +02:00
parent 4fe6d53bf9
commit 67f71f53b5
2 changed files with 9 additions and 4 deletions
+3 -1
View File
@@ -264,7 +264,9 @@ func (h *Handler) SacuvajPodesavanja(w http.ResponseWriter, r *http.Request) {
}
sledeci := r.FormValue("_next")
if sledeci == "" || !strings.HasPrefix(sledeci, "/") {
// dozvoljavamo samo relativne putanje koje počinju sa "/" ali ne i "//"
// (npr. "//evil.com" počinje sa "/" ali preusmerava na spoljni sajt)
if sledeci == "" || !strings.HasPrefix(sledeci, "/") || strings.HasPrefix(sledeci, "//") {
sledeci = "/podesavanja"
}