PushizoDocs
Güvenlik & uyum

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

  1. Cloudflare → Turnstile → Add site: alan adı (app.pushizo.com ya da kendi dashboard alan adınız), widget türü Managed ya da Invisible.
  2. Sunucu ortamına iki değişken:
DeğişkenNeredeAçıklama
TURNSTILE_SITE_KEYAPIGenel site anahtarı; dashboard GET /internal/v1/auth/config (herkese açık) ile okur ve widget'ı yalnızca anahtar varsa çizer
TURNSTILE_SECRET_KEYAPIGizli anahtar; site anahtarı olmadan verilirse yapılandırma reddedilir
  1. 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_token zorunludur; dashboard formu widget'tan aldığı belirteci otomatik ekler.
  • Sunucu belirteci Cloudflare siteverify ucunda doğrular (5 sn zaman aşımı).
DurumYanıt
Belirteç eksik400 captcha_required
Belirteç geçersiz/süresi dolmuş400 captcha_failed (widget yenilenir)
Cloudflare'e ulaşılamıyor503 captcha_unavailable — fail-closed: doğrulanamayan istek kabul edilmez
  • Anahtarlar boşken davranış değişmez: widget çizilmez, turnstile_token istenmez; yerel geliştirme ve E2E testleri bu modda çalışır.
  • Dashboard CSP'si script-src, connect-src ve frame-src için challenges.cloudflare.com kaynağı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ış.

Bu sayfada