PLT-6393: Fix Websocket CORS header check. (#6335)
Этот коммит содержится в:
коммит произвёл
Joram Wilander
родитель
010ec23af3
Коммит
85c2d5a478
@@ -345,7 +345,7 @@ func TestWebsocketOriginSecurity(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Should succeed now because matching CORS
|
// Should succeed now because matching CORS
|
||||||
*utils.Cfg.ServiceSettings.AllowCorsFrom = "www.evil.com"
|
*utils.Cfg.ServiceSettings.AllowCorsFrom = "http://www.evil.com"
|
||||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX_V3+"/users/websocket", http.Header{
|
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX_V3+"/users/websocket", http.Header{
|
||||||
"Origin": []string{"http://www.evil.com"},
|
"Origin": []string{"http://www.evil.com"},
|
||||||
})
|
})
|
||||||
@@ -354,7 +354,7 @@ func TestWebsocketOriginSecurity(t *testing.T) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Should fail because non-matching CORS
|
// Should fail because non-matching CORS
|
||||||
*utils.Cfg.ServiceSettings.AllowCorsFrom = "www.good.com"
|
*utils.Cfg.ServiceSettings.AllowCorsFrom = "http://www.good.com"
|
||||||
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX_V3+"/users/websocket", http.Header{
|
_, _, err = websocket.DefaultDialer.Dial(url+model.API_URL_SUFFIX_V3+"/users/websocket", http.Header{
|
||||||
"Origin": []string{"http://www.evil.com"},
|
"Origin": []string{"http://www.evil.com"},
|
||||||
})
|
})
|
||||||
|
|||||||
@@ -15,7 +15,7 @@ type OriginCheckerProc func(*http.Request) bool
|
|||||||
|
|
||||||
func OriginChecker(r *http.Request) bool {
|
func OriginChecker(r *http.Request) bool {
|
||||||
origin := r.Header.Get("Origin")
|
origin := r.Header.Get("Origin")
|
||||||
return *Cfg.ServiceSettings.AllowCorsFrom == "*" || strings.Contains(origin, *Cfg.ServiceSettings.AllowCorsFrom)
|
return *Cfg.ServiceSettings.AllowCorsFrom == "*" || strings.Contains(*Cfg.ServiceSettings.AllowCorsFrom, origin)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetOriginChecker(r *http.Request) OriginCheckerProc {
|
func GetOriginChecker(r *http.Request) OriginCheckerProc {
|
||||||
|
|||||||
Ссылка в новой задаче
Block a user