Üretim kontrol listesi
Bu sayfa, canlıya çıkmadan önce tek tek işaretleyeceğiniz maddeleri toplar. Her madde kısa bir nedenle gelir ve ilgili sayfaya bağlanır. Listeyi lansmandan önce bir kez ve her büyük değişiklikten sonra yeniden gözden geçirin.
1. Ağ ve barındırma
- Her şey HTTPS. Oturum çerezleri
__Secure-öneklidir veSecurebayrağı taşır; düz HTTP’de oturum kurulamaz. Soketlerwss://ile açılır. Yerel geliştirmedehttp://localhostkullanıyorsanız tarayıcınızınlocalhostistisnasını doğrulayın. - Tarayıcıdan çağrı yolu seçildi. Ya oyunun alan adı bir ortamın alan adı listesindedir ve oyun Open Play’i doğrudan çağırır (sunucu CORS başlıklarını gönderir; oyun ile Open Play aynı kayıtlı alan adının alt alanları olmalıdır, yoksa
SameSite=Laxoturum çerezi gitmez), ya da oyun API’yi kendi alan adı altından ters vekille çağırır (mimari ve barındırma). - Vekil şu başlıkları olduğu gibi iletir:
Authorization,Cookie(ve yanıttaSet-Cookie),Origin,x-crx-env,x-csrf-token,Idempotency-Key,If-Match,x-crx-schema-version,Sec-WebSocket-*(alt protokol ve uzantı pazarlığı dahil). Yanıt başlıklarını (x-csrf-token,Deprecation,Retry-After,ETag) silmez. - WebSocket yükseltmesi vekilde açıktır,
Upgrade/Connectionbaşlıkları iletilir ve bağlantı en az 5 dakika boşta kalabilir (sunucu boşta kapatmayı kendisi yapar: limitler). - İstek gövdesi sınırı en az 2 MiB. Sunucu 2 MiB üstünü
413ile reddeder; vekiliniz daha düşük bir sınır koymasın. - Zaman aşımı: vekilin yanıt-başlık bekleme süresi uzun işlemleri kesmez (Open Play’in kendi ağ geçidi 65 sn kullanır).
- İstemci IP’si iletilir. Kimlik uçlarındaki hız sınırları istemci IP’sine bağlıdır. Vekil
X-Forwarded-Foreklemiyorsa tüm oyuncular tek kovada toplanır (ör. misafir açma dakikada 30). Birden çok vekil zincirliyse operatör güvenilir vekil bloklarını tanımlamalıdır. - Panel yolu internete kapalı.
/v1/panel/*yolu halka açık ağ geçidinde404döndürülür; panele yalnız yönetim ağından ya da ayrı bir alan adından erişilir. - Önbellek: çerez ya da
Authorizationtaşıyan API yanıtları paylaşımlı önbelleğe (CDN) alınmaz. Yalnız herkese açık, içerik adresli yanıtlar (/v1/assets/{sha256},/v1/model-files/{sha256}) veETagtaşıyan katalog yanıtları uygun önbellek kuralına tabidir.
2. Ortamlar ve alan adları
- Geliştirme, hazırlık ve canlı için ayrı ortamlar kullanıyorsunuz; veriler paylaşılmaz.
- Her ortamın alan adı panelde tanımlı (Oyun ayarları: ortamlar); izinli
Originlistesi budur. - İstemci yapılandırmasına doğru ortam kimliği (
x-crx-envdeğeri) konmuş; canlı istemci hazırlık ortamını göstermiyor. - Yalnız gereken modüller açık (modüller). Kapalı modül
404 module_disableddöner; açık bıraktığınız her modül saldırı yüzeyidir. - Giriş yöntemleri panelde yapılandırılmış (misafir, e-posta, Google); kullanmadığınız yöntem kapalı (Giriş yöntemleri).
3. Anahtarlar ve sırlar
- Sunucu anahtarları yalnız sunucuda. İstemci paketinde, mobil uygulamada, WebGL derlemesinde, depoda yoktur (güvenlik).
- Ortam ve hizmet başına ayrı anahtar; anahtarlara son kullanma tarihi verildi.
- İstemci anahtarı kullanıyorsanız hangi uçları çağırabildiğini bildiğinizi doğruladınız; oyuncu işlemleri oyuncu oturumuyla yapılıyor (uç noktalar).
- Anahtar döndürme provası yapıldı: ikinci anahtar, dağıtım, eskiyi iptal.
- Anahtar ve jetonlar günlüklerde yok;
Authorization,Cookievex-csrf-tokensüzülüyor. - Webhook gizli anahtarı alıcınızda gizli yönetim aracında; kayıtta yalnız bir kez gösterildiği için yedeği var.
4. Tekrar güvenliği ve eşzamanlılık
- Para, eşya, ödül ve komut gönderen her çağrı
Idempotency-Keytaşıyor; anahtar bir kez üretilip tekrarlarda aynen kullanılıyor (idempotency). - Belirsiz sonuçta (zaman aşımı, ağ kopması) komut yeni anahtarla değil aynı anahtarla ya da sonuç sorgusuyla tamamlanıyor.
- Paylaşılan kaynak yazan çağrılar
If-Match/expectedVersiongönderiyor;409’da durum yeniden okunuyor. -
429,503ve ağ hatalarında üstel geri çekilme + sapma (jitter) var;Retry-Afterdikkate alınıyor (hız sınırları). - Hata işleme durum koduna göre; düz metin mesajı ayrıştırılmıyor (hatalar).
5. Oyuncu kimliği
- Oturum kaybı akışı kurulu:
401gelince oturum yenileme, olmazsa yeniden giriş; yasaklı hesap için ayrı ekran (oturumlar ve CSRF). - Misafir kimliğinin saklama davranışı ve e-posta ya da Google’a yükseltme akışı kuruldu (misafir ilerlemesi yükseltmeyle korunur).
- Oyun sunucunuz erişim JWT’sini JWKS ile doğruluyor, süre ve ortam alanlarını denetliyor (sunucu doğrulaması).
- Kimlik hız sınırları (misafir 30/dk, e-posta girişi 5/dk, kayıt 10/dk, IP başına) beklenen lansman trafiğinizi taşıyor; gerekirse yük testi yapıldı.
6. Realtime
- İstemci SDK’yı kullanıyor ya da protokolü (bilet,
Origin, alt protokol) eksiksiz uyguluyor (protokol). - Yeniden bağlanma: her bağlantıda yeni bilet, üstel geri çekilme, kalıcı akışlarda son imleçle
Join,ResyncRequired’da imleçsizJoin(yeniden bağlanma). - Boşta kapanma (
4100) için “Devam et” ekranı var; duraklatma ekranlarında canlı tutma girdisi gönderiliyor. - Çerçeve hızı 40/sn altında; oyuncu başına 4 sekme/soket sınırı biliniyor.
- Bildirim ve sohbet soketleri tarayıcıdan doğrudan açılamaz (başlık kısıtı); gelen kutusu yoklaması ya da REST uçları kullanılıyor (realtime genel bakış).
7. Eklentiler
- Kullandığınız eklentinin şema özeti (
schemaSha256) sürüm manifestinize yazılı ve bağlamalar bu özetle üretildi (bağlamalar). - Sunucu güncellemesinden sonra özet karşılaştırması (başlangıçta ya da CI’da) yapılıyor.
- Eklentinin ortamdaki durumu etkin (Eklentiler); beklenmedik
403 forbiddeniçin ilk bakılacak yer burasıdır. -
Deprecationbaşlığı taşıyan çağrılar için geçiş işi açıldı (sürümleme).
8. Webhook’lar
- Uç nokta
https; imza her istekte doğrulanıyor, zaman damgası penceresi denetleniyor,X-Crx-Event-Idile tekilleştirme yapılıyor (güvenlik). - Alıcı hızlı
2xxdöner (işi kuyruğa alır); 10 deneme sonundafailed(DLQ) olan teslimatlar için izleme planı var (Webhook ve olay kuyruğu yalnız izleme sunar, yeniden gönderme yoktur); kaçırılan olayları ilgili kaynağı REST ile okuyarak telafi eden bir yolunuz var.
9. Gözlem ve işletme
- İstek günlüğünüzde durum kodu, süre, çağrılan yol ve (eklenti uçlarında)
x-request-idvar; gizli değerler yok. -
5xxve429oranı için uyarınız var;503+Retry-Afteryanıtlarının yeniden denendiği doğrulandı. - Panel yönetici hesapları kişiye özel, iki aşamalı doğrulama açık (Panel yöneticileri).
- İşlem geçmişi düzenli gözden geçiriliyor; güvenlik şalterleri varsayılan konumunda (bilerek değiştirdiyseniz gerekçesi kayıtlı).
- SDK sürümü tam sabitlenmiş (
^yok); yükseltmeler değişiklik günlüğünden izleniyor (sürümleme).
10. Lansman öncesi son deneme
- Canlı ortama benzer bir hazırlık ortamında uçtan uca akışı koşun: giriş, ödül, satın alma, soket bağlantısı, bağlantı kopması ve yeniden bağlanma.
- Bilerek
Idempotency-Keyile aynı isteği iki kez gönderin; ikinci yanıtın aynı sonucu döndüğünü doğrulayın. - Sunucu anahtarını bir kez iptal edin ve ikinci anahtara geçişi gözlemleyin.
- Webhook alıcınıza hatalı imzayla bir istek gönderin; reddettiğini doğrulayın.
- Kimlik uçlarında lansman trafiğinizi taklit eden bir deneme yapın;
429oranına bakın.
Sorun çıkarsa sorun giderme sayfasına bakın.