Hocam fikir güzel ama görseller dahil tamamen vibe coded duruyor. Claude'a selam söyleyin
Hocam selamlar, eleştiri için teşekkürler.
Evet, geliştirirken yapay zekâdan (Claude) yardım aldım; bunu saklamıyorum, GitHub'daki katkıcılar listesinde de görünüyor. Hâkim olduğum diller Python ve HTML; kodun %57,9'u Python, %8,8'i HTML, yani büyük kısmını kendim okuyup denetleyebiliyorum. Arayüzde yapay zekâ izlerinin görünmesi normal: tam yığın (full stack) ya da ön yüz (frontend) tarafında, backend de kadar iyi değilim. Ama bence asıl soru bir uygulamanın "vibe coded" olup olmaması değil, ne kadar güvenli olduğu ve nelerin test edildiği. Aşağıda onu anlatıyorum.
Uygulama GPL-3.0 lisansıyla açık kaynak:
GitHub - Helyosfer/magnetosphere: Kick moderasyon ekipleri için ortak ban listesi: bir kullanıcıyı ekibin tüm kanallarında tek işlemle banla.
Bu alanlara hâkimseniz ve bir açık ya da hata görürseniz bana iletirseniz gerçekten çok memnun olurum (güvenlik açıkları için:
destek@helyosfer.me).
Veriler nerede, nasıl tutuluyor?
- Sunucu Türkiye'deki bir hosting firmasının VPS'inde çalışıyor; dışarıya yalnızca HTTPS (TLS 1.2/1.3) ile açık.
- Tutulan veri az: Kick kullanıcı adı ve kimliği, Kick erişim tokenları ve ekip verisi (kanallar, ban listesi, roller). E-posta, şifre ya da sohbet mesajı alınmıyor; giriş Kick'in kendi sayfasında yapılıyor.
- Kick tokenları veritabanında Fernet (AES-128-CBC + HMAC-SHA256) ile şifreli; anahtar veritabanından ve yedeklerden ayrı duruyor. Oturum anahtarlarının yalnızca SHA-256 özeti saklanıyor.
- Sunucu kayıtlarına IP adresi, oturum anahtarı ya da token yazılmıyor.
- Veritabanı her gece yedekleniyor; bir kopya sunucuda 14 gün, bir kopya sunucu dışında (Google Drive) 90 gün tutuluyor.
- Kullanıcı hesabını panelden kendisi silebiliyor; silinince Kick'teki erişim de geri alınıyor.
Hangi verinin neden ve ne kadar tutulduğu:
Magnetosphere Gizlilik Politikası
Yapılan testler
Sunucu, Kick API'sini taklit eden sahte bir sunucuya karşı uçtan uca test ediliyor (Python unittest; 5 test grubu, 158 doğrulama,
server/test_app.py). Testler her sürümden önce hem geliştirme ortamında hem canlı sunucuda çalıştırılıyor. Öne çıkanlar:
1. OAuth yönlendirme doğrulaması:** giriş OAuth 2.1 + PKCE (S256) ve tek kullanımlık
state ile yapılıyor. Dönüş adresi yalnızca izinli uzantı kimliğinin
chromiumapp.org adresi olabilir; başka alan adı, izinsiz uzantı ya da satır sonu içeren adres → 400.
2. Ekipler arası yalıtım:** üye olmayan biri bir ekibin herhangi bir ucunu çağırırsa 404 döner; ekibin var olduğu bile anlaşılmaz. Başka ekibin kaydına kendi ekip yolu üzerinden erişim → 404.
3. Rol matrisi:** 4 rolün (izleyici, moderatör, yönetici, sahip) her uçtaki yetkisi ayrı ayrı test ediliyor; kontrol sunucuda yapılıyor, istemcinin düğmeyi gizlemesine güvenilmiyor.
4. Token güvenliği:** test, veritabanında düz metin token bulunmadığını doğruluyor. Geçersiz, süresi dolmuş ya da silinmiş hesaba ait oturum → 401.
5. Yetki ödünç verme koruması:** bir yayıncının token'ı, yayıncı paylaşımı kendisi açmadıkça başka birinin banında kullanılmıyor.
6. Bozuk ve kötü niyetli istekler:** 1 MB'tan büyük gövde → 413; negatif ya da sayı olmayan Content-Length → 400 (bağlantı askıda kalmıyor); 50.000 seviye iç içe JSON → 400; yanlış veri türleri → 400; beklenmeyen hata → 500, yanıtta stack trace yok.
7. Hız ve kaynak sınırları:** IP başına 10 dakikada 30 giriş, hesap başına dakikada 300 istek ve aynı anda 2 Kick işlemi; aşılınca → 429. Ekipler arası adil sıra; 3 işçi aynı anda çalışırken hiçbir kayıt iki kez işlenmiyor.
8. Regresyon kanıtı:** güvenlik testleri önceki sürüme karşı çalıştırıldı ve başarısız oldu; yani hatayı gerçekten yakalıyorlar.
Ayrıca: CORS yalnızca resmi uzantıya açık; tüm SQL sorguları parametreli; uzantıda
innerHTML/
eval yok, içerik
textContent ile yazılıyor; uzantı izinleri yalnızca
identity,
storage,
contextMenus. Canlı sunucuda TLS 1.0/1.1 kapalı; HSTS,
nosniff,
X-Frame-Options: DENY başlıkları var;
.git,
.env ve veritabanı dosyası dışarıdan erişilemiyor (404).
Kendiniz denemek isterseniz:
git clone
GitHub - Helyosfer/magnetosphere: Kick moderasyon ekipleri için ortak ban listesi: bir kullanıcıyı ekibin tüm kanallarında tek işlemle banla.
cd magnetosphere/server
pip install -r requirements.txt
python -m unittest test_app
Testler gerçek Kick'e bağlanmaz, hesap ya da anahtar gerektirmez.
Henüz yapılmayanlar:
- Bağımsız bir sızma testi yok.
- Yük testi yapılmadı.
- Otomatik testler Dummy Kick'de karşı çalışıyor; giriş, ban, ban kaldırma ve toplu içe aktarma gerçek Kick'te de denendi.
Bağımsız bir sızma testi yapamadım çünkü daha oldukça yeni bir eklenti. Bu yazıyı gören iyi bir QA revize ya da feedback verirse, seve seve eksikleri paylaşırım.
Teşekkür ederim.