Yükleniyor...

Netlify Güvenlik Rehberi: Kurumsal Web Uygulaması Koruması

Yazar: Burak Balkı | Kategori: Security | Okuma Süresi: 9 dk

Netlify platformunda kurumsal düzeyde güvenlik yapılandırmalarını içeren kapsamlı rehber. SSL, CSP, Identity, Edge Functions ve RBAC konularını teknik örnekl...

## Netlify ile Modern Web Güvenliği: Jamstack Mimarisinde Tam Koruma **Netlify**, modern web uygulamalarını dağıtmak ve yönetmek için kullanılan en gelişmiş platformlardan biridir. Geleneksel sunucu tabanlı mimarilerin aksine, Netlify'ın sunduğu **Jamstack** (JavaScript, API, Markup) yaklaşımı, saldırı yüzeyini minimize ederek doğal bir güvenlik katmanı sağlar. Bu rehberde, Netlify ekosisteminde uçtan uca güvenliğin nasıl yapılandırılacağını teknik derinlikle inceleyeceğiz. ### Netlify Güvenlik Mimarisi ve Temel Kavramlar Netlify'ın güvenlik felsefesi, 'güvenli-varsayılan' (secure-by-default) prensibine dayanır. Platform, statik dosyaları global bir **CDN (Content Delivery Network)** üzerinden sunarak sunucu taraflı açıkları (SQL Injection, Remote Code Execution vb.) ortadan kaldırır. - **Atomic Deploys:** Her dağıtımın değişmez (immutable) bir kopyası oluşturulur. Bu, bir siber saldırı durumunda hızlıca güvenli bir sürüme geri dönmeyi sağlar. - **Edge Network:** Trafik, Netlify'ın global ağında filtrelenerek DDoS saldırılarına karşı ilk savunma hattını oluşturur. - **Environment Variables:** Hassas veriler kod tabanından ayrıştırılarak güvenli bir şekilde saklanır. ## Netlify Kurulumu ve Güvenli Başlangıç Bir projeyi Netlify'a bağlarken güvenli bir temel oluşturmak kritik öneme sahiptir. İlk adım, `netlify.toml` dosyasının doğru yapılandırılmasıdır. ```toml # netlify.toml - Güvenli Yapılandırma Örneği [build] publish = "dist" command = "npm run build" [build.environment] NODE_VERSION = "18" [[headers]] for = "/*" [headers.values] X-Frame-Options = "DENY" X-XSS-Protection = "1; mode=block" X-Content-Type-Options = "nosniff" Referrer-Policy = "strict-origin-when-cross-origin" ``` ### SSL/TLS Sertifika Yönetimi Netlify, tüm siteler için otomatik olarak **Let's Encrypt** tabanlı SSL sertifikaları sağlar. Ancak kurumsal seviyede, özel sertifikaların (Custom SSL) yönetimi ve HSTS (HTTP Strict Transport Security) yapılandırması gereklidir. ```toml [[headers]] for = "/*" [headers.values] Strict-Transport-Security = "max-age=31536000; includeSubDomains; preload" ``` ## Hassas Veri Yönetimi: Environment Variables API anahtarları, veritabanı bağlantı dizeleri ve gizli anahtarlar asla kaynak kodda (Git) tutulmamalıdır. Netlify, bu verileri şifrelenmiş bir şekilde saklar. ### Ortam Değişkenlerinin Kod İçinde Kullanımı JavaScript tarafında bu değişkenlere erişirken, sadece `VITE_` veya `GATSBY_` gibi ön eklerle işaretlenmiş olanların istemci tarafına sızmasına izin verilmelidir. Diğerleri sadece build aşamasında veya **Netlify Functions** içinde erişilebilir kalmalıdır. ```javascript // Sadece sunucu tarafında (Netlify Functions) çalışması gereken güvenli erişim const stripeSecretKey = process.env.STRIPE_SECRET_KEY; if (!stripeSecretKey) { throw new Error("Kritik API anahtarı eksik!"); } ``` ## Content Security Policy (CSP) Yapılandırması **CSP**, Cross-Site Scripting (XSS) ve veri enjeksiyon saldırılarını önlemek için en güçlü araçtır. Netlify üzerinde CSP başlıklarını tanımlarken seçici davranılmalıdır. ```toml [[headers]] for = "/*" [headers.values] Content-Security-Policy = "default-src 'self'; script-src 'self' https://trustedscripts.com; style-src 'self' 'unsafe-inline'; img-src 'self' data:; connect-src 'self' https://api.netlify.com;" ``` ## Netlify Identity ile Kimlik Doğrulama ve Yetkilendirme Netlify Identity, uygulamanıza JWT (JSON Web Token) tabanlı bir kimlik doğrulama katmanı ekler. Bu, kullanıcı yönetimi için güvenli bir mikro servis sağlar. ### Identity Widget Entegrasyonu ```html ``` ## Netlify Functions Güvenliği Serverless fonksiyonlar, backend mantığını barındırdığı için en çok hedef alınan noktalardır. Bu fonksiyonların güvenliğini sağlamak için yetkilendirme kontrolleri zorunludur. ### Fonksiyon İçinde JWT Doğrulaması ```javascript // netlify/functions/secure-data.js exports.handler = async (event, context) => { const { user } = context.clientContext; if (!user) { return { statusCode: 401, body: JSON.stringify({ message: "Yetkisiz erişim: Lütfen giriş yapın." }), }; } return { statusCode: 200, body: JSON.stringify({ data: "Gizli kurumsal veriler" }), }; }; ``` ## Rol Tabanlı Erişim Kontrolü (RBAC) Netlify, yönlendirme kuralları (Redirects) üzerinden belirli sayfaları sadece belirli rollere sahip kullanıcılara açmanıza olanak tanır. ```text # _redirects dosyası /admin/* 200! Role=admin /member/* 200! Role=member,admin /login 200 ``` ## Edge Functions ve Güvenlik Filtreleri **Netlify Edge Functions**, trafiği kullanıcıya en yakın noktada (Edge) işleyerek güvenlik kontrolleri yapmanızı sağlar. Örneğin, belirli IP adreslerini veya ülkeleri engellemek için kullanılabilir. ```javascript // netlify/edge-functions/block-ip.js export default async (request, context) => { const blockedIPs = ["1.2.3.4"]; const clientIP = context.ip; if (blockedIPs.includes(clientIP)) { return new Response("Erişim Reddedildi", { status: 403 }); } return context.next(); }; ``` ## Veri Bütünlüğü: Subresource Integrity (SRI) Harici CDN'lerden yüklenen kütüphanelerin manipüle edilmediğinden emin olmak için SRI kullanılmalıdır. ```html ``` ## Kurumsal Güvenlik İçin Best Practices Netlify projelerinizde en yüksek güvenlik seviyesine ulaşmak için aşağıdaki tabloyu rehber edinebilirsiniz: | Güvenlik Katmanı | Uygulanacak Yöntem | Önem Derecesi | | :--- | :--- | :--- | | **Altyapı** | 2FA (İki Faktörlü Doğrulama) Aktifleştirme | Kritik | | **Kod** | Bağımlılık Taraması (Snyk, Dependabot) | Yüksek | | **Ağ** | DNSSEC Yapılandırması | Orta | | **Veri** | Environment Variable Şifreleme | Kritik | | **Erişim** | RBAC ve JWT Kullanımı | Yüksek | ## Sık Yapılan Güvenlik Hataları 1. **Hassas Verilerin Git'e Push Edilmesi:** `.env` dosyalarının yanlışlıkla repoya gönderilmesi. 2. **Aşırı İzinli CSP Başlıkları:** `'unsafe-inline'` kullanımının suistimal edilmesi. 3. **Fonksiyonlarda Girdi Doğrulaması Eksikliği:** Serverless fonksiyonlara gelen verilerin sanitize edilmemesi. 4. **Eski Bağımlılıklar:** Güncellenmeyen npm paketlerinin barındırdığı güvenlik açıkları. 5. **Build Loglarında Secret İfşası:** Build sırasında konsola yazdırılan API anahtarları. ## Performans ve Güvenlik Dengesi Güvenlik önlemleri bazen performansı etkileyebilir. Ancak Netlify'ın **Edge Network** yapısı, bu iki unsuru optimize eder. Örneğin, CSP başlıklarının Edge üzerinden sunulması, tarayıcı tarafında gecikme yaratmadan güvenlik sağlar. > **Not:** Güvenlik bir varış noktası değil, sürekli bir süreçtir. Netlify Audit loglarını düzenli olarak incelemek, şüpheli aktiviteleri tespit etmenize yardımcı olur. ## Sık Sorulan Sorular (SSS) **1. Netlify'da DDoS koruması varsayılan olarak açık mı?** Evet, Netlify tüm siteler için çok katmanlı DDoS koruması sağlar. Trafik anomalileri otomatik olarak algılanır ve filtrelenir. **2. Netlify Functions güvenli mi? Fonksiyon kodlarım çalınabilir mi?** Fonksiyon kodları sunucu tarafında çalışır ve asla istemciye (browser) gönderilmez. Sadece API üzerinden dönen sonuçlar görünür. **3. Ücretsiz planda SSL sertifikası alabilir miyim?** Evet, Netlify tüm planlarda (Ücretsiz dahil) otomatik SSL sertifikası sağlar. **4. Netlify sitelerimi belirli bir ülke trafiğine kapatabilir miyim?** Evet, Edge Functions kullanarak coğrafi konum tabanlı (Geo-blocking) engelleme yapabilirsiniz. **5. Build aşamasında güvenlik taraması yapabilir miyim?** Evet, Netlify build komutlarınıza `npm audit` veya `snyk test` gibi komutlar ekleyerek güvenlik açığı olan projelerin dağıtılmasını engelleyebilirsiniz. ## Özet ve Sonuç Netlify, modern web geliştirme dünyasında güvenliği en üst düzeye çıkaran araçlar sunar. Statik site üretimi ile sunucu risklerini azaltırken, **Edge Functions**, **Identity** ve **Advanced Headers** gibi özelliklerle dinamik güvenlik katmanları ekler. Bu rehberde uyguladığımız stratejiler, uygulamanızı sadece siber saldırılardan korumakla kalmaz, aynı zamanda kurumsal standartlara uygun, güvenilir bir yapıya kavuşturur.