İ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.
Hatalı
Bölüm başlığı “Hatalı”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"))}Düzeltme
Bölüm başlığı “Düzeltme”Origin’i bir izin listesine göre doğrulayın; joker karakter yerine yalnızca güvenilen origin’leri yansıtın.