Bot koruması (Cloudflare Turnstile)
Kayıt, parola sıfırlama ve doğrulama e-postası yeniden gönderimini Cloudflare Turnstile ile koruma — ortam değişkenleri, dashboard davranışı, API hataları, CSP ve devre dışı durum.
Pushizo, kötüye kullanıma açık üç herkese açık akışı isteğe bağlı olarak Cloudflare Turnstile ile korur: kayıt, parola sıfırlama isteği ve doğrulama e-postasını yeniden gönderme. Turnstile görünmez/etkileşimsiz bir doğrulamadır; kullanıcıya CAPTCHA bulmacası göstermez.
Kurulum
- Cloudflare → Turnstile → Add site: alan adı (
app.pushizo.comya da kendi dashboard alan adınız), widget türü Managed ya da Invisible. - Sunucu ortamına iki değişken:
| Değişken | Nerede | Açıklama |
|---|---|---|
TURNSTILE_SITE_KEY | API | Genel site anahtarı; dashboard GET /internal/v1/auth/config (herkese açık) ile okur ve widget'ı yalnızca anahtar varsa çizer |
TURNSTILE_SECRET_KEY | API | Gizli anahtar; site anahtarı olmadan verilirse yapılandırma reddedilir |
- API ve dashboard'u yeniden başlatın. Compose kurulumunda değişkenler
.env.prodüzerinden API servisine aktarılır (Compose ile kurulum).
Davranış
- Gizli anahtar tanımlıysa ilgili üç istek gövdesinde
turnstile_tokenzorunludur; dashboard formu widget'tan aldığı belirteci otomatik ekler. - Sunucu belirteci Cloudflare
siteverifyucunda doğrular (5 sn zaman aşımı).
| Durum | Yanıt |
|---|---|
| Belirteç eksik | 400 captcha_required |
| Belirteç geçersiz/süresi dolmuş | 400 captcha_failed (widget yenilenir) |
| Cloudflare'e ulaşılamıyor | 503 captcha_unavailable — fail-closed: doğrulanamayan istek kabul edilmez |
- Anahtarlar boşken davranış değişmez: widget çizilmez,
turnstile_tokenistenmez; yerel geliştirme ve E2E testleri bu modda çalışır. - Dashboard CSP'si
script-src,connect-srcveframe-srciçinchallenges.cloudflare.comkaynağını içerir; kendi vekil/CSP katmanınız varsa aynı kaynağa izin verin.
White-label alan adları
Özel dashboard alan adlarında (white-label) Turnstile site anahtarının Cloudflare'de o alan adı için de tanımlı olması gerekir; aksi hâlde widget 110200 türü alan adı hatası verir.
İlgili korumalar
Turnstile'dan bağımsız olarak kayıt ve giriş uçları IP bazlı nginx sınırı (auth_ip, 5 r/s) ve uygulama içi hız sınırıyla korunur; giriş kilidi, tek kullanımlık e-posta alan adı engeli ve yeni org limitleri için güvenliğe genel bakış.
SCIM 2.0 ile üye sağlama
Kimlik sağlayıcınız (Okta, Microsoft Entra ID, OneLogin, JumpCloud…) Pushizo üyelerini SCIM 2.0 ile otomatik ekler, rollerini günceller ve ayrılanları kaldırır. SCIM Enterprise planındadır ve SSO ile birlikte kullanılır…
White-label: marka, özel alan adı ve bayi hesabı
Pushizo'yu kendi markanızla sunun: panelde ve sistem e-postalarında ürün adınız, logonuz ve renkleriniz; kendi alan adlarınızda panel, izleme bağlantıları, tercih merkezi ve durum sayfası; ajanslar için alt müşteri…