Script Güvenliği
Otomasyon harikadır, ancak güvensiz bir script sunucuyu saldırganlara altın tepside sunabilir.
1. Sırlar ve Şifreler (Secrets)
❌ ASLA YAPMA: Scriptin içine şifre gömmek. Script git reposuna giderse şifreniz de gider.
✅ DOĞRUSU:
Şifreleri .env dosyasından veya ortam değişkenlerinden okuyun.
# Script başı
if [ -f .env ]; then
source .env
fi
if [ -z "${DB_PASSWORD:-}" ]; then
echo "Hata: DB_PASSWORD ayarlanmamış!"
exit 1
fi
.env dosyasını .gitignore'a eklemeyi unutmayın!
2. Curl | Bash Tehlikesi
İnternetten bulduğunuz scriptleri direkt pipe ederek çalıştırmayın:
Risk: Bağlantı kesilirse script yarım inip çalışabilir veya sunucu tarafında içerik değiştirilebilir.
Güvenli Yöntem:
- İndir (
curl -O ...) - Oku/İncele (
cat script.sh) - Çalıştır (
bash script.sh)
3. Checksum Doğrulama
Kritik bir araç indiriyorsanız (örn: Docker, kubectl), indirdiğiniz dosyanın bütünlüğünü doğrulayın:
4. En Az Yetki Prensibi (Least Privilege)
Her scripti root olarak çalıştırmak zorunda değilsiniz.
- Web sunucusu işlemleri için
www-data. - Yedekleme için
backup-user. - Uygulama için
deployer.
Script başında sudo gerekliyse kontrol edin: