İçeriğe geç

İzin Veren CORS (ARCH5121)

Anahtar go.security.permissive-cors · Önem warning · Kategori security · CWE CWE-942

Access-Control-Allow-Origin: * ayarı, özellikle kimlik bilgileriyle birlikte kullanıldığında, herhangi bir web sitesinin API’ye istek atmasına izin vererek veri sızıntısına yol açar.

func handler(w http.ResponseWriter, r *http.Request) {
w.Header().Set("Access-Control-Allow-Origin", "*")
w.Header().Set("Access-Control-Allow-Credentials", "true")
w.Write([]byte("ok"))
}
var allowed = map[string]bool{"https://app.example.com": true}
func handler(w http.ResponseWriter, r *http.Request) {
origin := r.Header.Get("Origin")
if allowed[origin] {
w.Header().Set("Access-Control-Allow-Origin", origin)
w.Header().Set("Access-Control-Allow-Credentials", "true")
}
w.Write([]byte("ok"))
}

Origin’i bir izin listesine göre doğrulayın; joker karakter yerine yalnızca güvenilen origin’leri yansıtın.