Sunucu Taraflı İstek Sahteciliği (ARCH5104)
Anahtar go.security.ssrf · Önem warning · Kategori security · CWE CWE-918
Kullanıcının verdiği bir URL’ye doğrulamadan istek yapmak, saldırganların sunucuyu dahili servislere veya bulut metadata uç noktalarına istek atmaya zorlamasına olanak tanır.
Hatalı
Bölüm başlığı “Hatalı”func fetch(w http.ResponseWriter, r *http.Request) { url := r.URL.Query().Get("url") resp, _ := http.Get(url) io.Copy(w, resp.Body)}var allowedHosts = map[string]bool{"api.example.com": true}
func fetch(w http.ResponseWriter, r *http.Request) { u, err := url.Parse(r.URL.Query().Get("url")) if err != nil || !allowedHosts[u.Hostname()] { http.Error(w, "forbidden", 403) return } resp, _ := http.Get(u.String()) io.Copy(w, resp.Body)}Düzeltme
Bölüm başlığı “Düzeltme”Giden URL’leri bir izin listesine göre doğrulayın; özel IP aralıklarını ve metadata uç noktalarını engelleyin.