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:
@@ -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"
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user