Biz şahsen çalışmalarımızda Antigravity üzerinden gemini ve cloude kullanıyoruz. Aşağıya bazı bilgiler bırakıyorum.
PUTTY İLE NODE.JS İLE İLGİLİ; npm audit:
Terminalde proje dizininde çalıştırarak kullanılan paketlerdeki bilinen açıkları listeler.
npm audit fix
Güvenli sürümlere otomatik güncellemek için.
Statik Kod Analizi (SAST - Kaynak Kod Denetimi)
Yazılımın kaynak kodunu çalıştırmadan tarayarak mantıksal ve yapısal açıkları (güvensiz veri aktarımı, yetkilendirme eksiklikleri vb.) bulma.
- Semgrep: Açık kaynaklı, hızlı ve kural tabanlı bir statik analiz aracıdır. JavaScript/TypeScript kodlarını güvenlik kurallarına göre tarar. - https://semgrep.dev/
- SonarQube / SonarLint: Kod kalitesi, kod kokuları (code smells) ve güvenlik zaafiyetlerini IDE içinde ve CI/CD süreçlerinde anlık gösterir. - https://www.sonarsource.com/products/sonarqube/ide/
- ESLint Güvenlik Eklentileri: eslint-plugin-security gibi eklentilerle güvensiz regex, eval kullanımı veya tehlikeli nesne erişimlerini derleme aşamasında yakalayabilirsiniz. - https://github-com.translate.goog/es...r&_x_tr_pto=tc
Dinamik Güvenlik Testi (DAST)
Çalışan sitenin uç noktalarını (endpoints) dışarıdan otomatik olarak test etmek için:- OWASP ZAP (Zed Attack Proxy): OWASP tarafından sunulan, web uygulamalarındaki SQL Enjeksiyonu, XSS, güvensiz başlıklar ve kimlik doğrulama zafiyetlerini test eden ücretsiz ve standart bir araçtır. - https://www.zaproxy.org/
- Tarayıcı Geliştirici Araçları (Network & Console): API isteklerinde yetkisiz veri dönüp dönmediğini (IDOR kontrolü), token/çerez güvenliğini denetlemek için kullanılır. - https://developer.chrome.com/docs/devtools?hl=tr
Kritik Kontrol Listesi (OWASP Top 10)
Yazılımınızda manuel olarak kontrol etmeniz gereken en önemli güvenlik maddeleri:
- Kimlik Doğrulama & Yetkilendirme (Auth/RBAC):
- Tüm /api/... rotalarında oturum ve rol (Kasiyer, Yönetici vb.) kontrolleri backend tarafında eksiksiz yapılmalıdır (sadece arayüzde gizlemek yeterli değildir).
- Girdi Doğrulama (Input Validation):
- İstemciden gelen her veri (fiyat, miktar, müşteri ID vb.) sunucu tarafında zod veya benzeri bir şema ile tip ve sınır denetiminden geçirilmelidir.
- SQL Enjeksiyon Koruması:
- Drizzle ORM veya parametreli sorgular (prepared statements) kullanılarak doğrudan metin birleştirme ile SQL sorgusu oluşturulmamalıdır.
- İstek Sınırlandırma (Rate Limiting):
- Giriş (/api/login) ve şifre sıfırlama gibi alanlara brute-force (kaba kuvvet) saldırılarını engellemek için IP başına istek sınırlaması uygulanmalıdır.
- Güvenlik Başlıkları (Security Headers):
- next.config.ts içinde Content-Security-Policy, X-Frame-Options: DENY, X-Content-Type-Options: nosniff gibi HTTP başlıkları eklenmelidir.
- Hassas Veri İfşası:
- API yanıtlarında kullanıcı şifre hash'leri, veritabanı bağlantı metinleri veya gereksiz sistem detayları istemciye gönderilmemelidir.