Google Play, hem kullanıcıların hem de geliştiricilerin güvenliğini sağlamaya kararlıdır. Başarılı bir uygulama işletmesi kurmanın, kötü niyetli kişilere karşı proaktif bir şekilde savunma yaparak yatırım getirinizi güvence altına alan güvenilir bir platforma bağlı olduğunu biliyoruz.
Bu belgede, faturalandırma entegrasyonunuza yönelik saldırıları önleme ve uygulamanızda kötüye kullanımın etkisini azaltma ile ilgili öneriler açıklanmaktadır.
Koruma düzeyinizi artırma
Aşağıdaki API'ler ve araçlar, uygulamanızdaki riskleri azaltabilir:
- Voided Purchases API: İptal edilen siparişlere erişimi iptal edin.
- Karartılmış Hesap Kimliği: Kısa süre içinde birden fazla cihazın aynı hesaptan satın alma işlemi yapmasını tespit etmeye yardımcı olur.
- Arka uç tüketimi: Purchases.products:consume gibi araçlar, işletme mantığını güvenli arka uçlarınıza kaydırarak istemci tarafında değişiklik yapılmasını önler. Bu platform API'lerini kullanmanın yanı sıra entegrasyonlarınızı yetkisiz erişime karşı daha da güvenli hale getirmek için aşağıdaki en iyi uygulamaları benimseyin.
Lokasyon sahteciliğini önleme
Google Play, kötü niyetli kişilerin bölgesel para birimi farklılıklarından yararlanmak için sahte konumlar kullanmasını (konum sahteciliği olarak da bilinir), abonelik promosyonlarını ve teşviklerini kötüye kullanmasını ve hediye kartı dolandırıcılığı yapmasını önlemek için yerleşik korumalar sunar.
Hassas mantığı arka ucunuza taşıma
Uygulama tasarımınızın izin verdiği ölçüde hassas verileri ve mantığı kontrol ettiğiniz bir arka uç sunucusuna taşıyın. Bir ön uç cihazda ne kadar çok veri ve mantık varsa değiştirilme veya kurcalanma olasılığı o kadar yüksek olur.
Örneğin, online bir satranç oyunu, ön uçta her zaman yasal hamleler gönderildiğine güvenmek yerine tüm hamleleri arka uçta doğrulamalıdır.
Ayrıca, güvenlik açıkları veya güvenlik sorunları bulursanız sistem tasarımınıza bağlı olarak, hata ayıklama, düzeltme ve güncellemeleri ön uç yerine arka uçta dağıtmak daha kolay olabilir.
Hakları vermeden önce satın alma işlemlerini doğrulama
Hassas veriler ve mantıkla ilgili, arka uçta işlenmesi gereken özel bir durum satın almayı doğrulama ve onaylamadır. Kullanıcı satın alma işlemi yaptıktan sonra şunları yapmanız gerekir:
- İlgili purchaseToken değerini arka ucunuza gönderin. Bu nedenle, tüm satın alma işlemlerinin purchaseToken değerlerinin kaydını tutmanız gerekir.
- Mevcut satın alma işlemine ait purchaseToken değerinin önceki purchaseToken değerleriyle eşleşmediğini doğrulayın. purchaseToken, genel olarak benzersizdir. Bu nedenle, bu değeri veritabanınızda birincil anahtar olarak güvenle kullanabilirsiniz.
- Satın alma işleminin meşru olduğunu Google ile doğrulamak için Google Play Developer API'deki Purchases.products:get veya Purchases.subscriptionsv2:get uç noktalarını kullanın.
- Satın alma işlemi meşruysa ve daha önce kullanılmadıysa uygulama içi öğe veya abonelik için güvenle hak verebilirsiniz.
- Aboneliklerde, Purchases.subscriptionsv2:get içinde linkedPurchaseToken ayarlandığında, birden fazla kullanıcının aynı satın alma işlemine hak kazanmaması için linkedPurchaseToken'ı veritabanınızdan da kaldırmanız ve linkedPurchaseToken'a verilen hakkı iptal etmeniz gerekir.
- Yetkiyi yalnızca satın alma durumu PURCHASED olduğunda vermeli ve PENDING durumundaki satın alma işlemlerini doğru şekilde ele aldığınızdan emin olmalısınız. İPTAL EDİLDİ durumundaki satın alma işlemlerinde artış varsa satın alma işlemi BEKLEMEDE durumundayken hak veriyor olabilirsiniz. Daha fazla bilgiyi Bekleyen işlemleri işleme başlıklı makalede bulabilirsiniz.
Yetki verdikten sonra tüketilebilir bir ürünü kullanmak ve onaylamak istiyorsanız güvenli arka uç sunucunuzda Purchases.products:consume Play Developer API'yi kullanın. Tüketilmeyen bir ürünü veya aboneliği onaylamak için güvenli arka uç sunucunuzda ilgili Play Developer API uç noktasını (Purchases.products:acknowledge veya Purchases.subscriptions:acknowledge) çağırın. Kullanıcıya satın alma yetkisi verildiğini Google Play'e bildirdiği için onay gereklidir. Yetki verdikten hemen sonra satın alma işlemini onaylamanız gerekir.
Satın alma işlemini uygulamanız aracılığıyla istemci tarafında onaylayabileceğinizi veya tüketebileceğinizi unutmayın. Ancak sunucu tarafı API'leri, zayıf ağ bağlantısı ve kötü amaçlı etkinlik gibi sorunlara karşı ek koruma sağlar. Örneğin, bir kullanıcının uygulamanızdan bir öğe satın aldığını ancak satın alma işlemi doğrulanırken ağ bağlantısını kaybettiğini düşünün. Sunucu onayı olmadan, onay sürecini tamamlamak için uygulamada tekrar oturum açmaları gerekebilir. Aksi takdirde, kullanıcı üç gün içinde tekrar giriş yapmazsa satın alma işlemi, satın alma onayı verilmediği için otomatik olarak geri ödenir. Sunucu onayı, Google Play satın alma işleminin geçerli olduğunu sunucuya bildirdiği anda onay göndererek bu senaryoyu önler.
Satın alma işleminin onaylanması ve tüketimi hakkında daha fazla bilgi için Satın alma işlemlerini işleme başlıklı makaleyi inceleyin.
Kilidi açılmış içeriğinizi koruma
Kötü niyetli kullanıcıların kilidi açılmış içeriğinizi yeniden dağıtmasını önlemek için bu içeriği APK dosyanıza dahil etmeyin. Bunun yerine aşağıdakilerden birini yapın:
- İçeriğinizi yayınlamak için içerik feed'i gibi gerçek zamanlı bir hizmet kullanın. İçeriği anlık hizmet aracılığıyla sunmak, içeriğinizin güncel kalmasını da sağlar.
- İçeriğinizi yayınlamak için uzak bir sunucu kullanın. Uzak bir sunucudan veya anlık hizmetten içerik yayınladığınızda kilidi açılmış içeriği cihazın belleğinde veya SD kartında depolayabilirsiniz. İçerikleri SD kartta saklıyorsanız içerikleri şifrelediğinizden ve cihaza özel bir şifreleme anahtarı kullandığınızdan emin olun.
Geçersiz kılınan satın alma işlemlerini tespit etme ve işleme
Geçersiz kılınan satın alma işlemleri, iptal edilen, geri alınan veya ters ibraz edilen satın alma işlemleridir. Geçersiz kılınan bir satın alma işlemi daha önce kullanıcıya uygulama içi öğeler veya başka içerikler vermişse Voided Purchases API'yi kullanarak satın alma işleminin geçersiz kılınma nedenini ve geri alabileceğiniz ilişkili içerikleri öğrenebilirsiniz.
Uygulama içi öğeler ve abonelikler için yapılan satın alma işlemleri, aşağıdakiler dahil olmak üzere çeşitli nedenlerle iptal edilebilir:
- Kullanıcı, geliştirici veya Google tarafından satın alma işlemi iptal edildiğinde (onaylanmamış otomatik iptal edilen satın alma işlemleri dahil) Aboneliklerde, bunun aboneliğin kendisini iptal etmekten ziyade abonelik satın alma işlemini iptal etmek anlamına geldiğini unutmayın.
- Bir satın alma işlemi için ters ibrazda bulunulduğunda
Uygulama geliştirici, kullanıcı siparişini iptal eder veya geri ödeme yapar ve konsolda "erişimi iptal et" seçeneğini işaretler. İptal edilen satın alma işleminin nedenine bağlı olarak ve önceki kullanıcı davranış verilerini dikkate alarak bir işlem yapmaya karar verebilirsiniz. Aşağıdakilerden birini veya daha fazlasını uygulamanızı öneririz:
Geri alma işlemleri gerçekleştirme: Satın alma işlemi geçersiz kılındığında, kullanılmamış öğeleri hiç satın alınmamış gibi geri alabilirsiniz. Örneğin, oyun içi para birimi satın alma işlemi geçersiz kılındıysa kullanıcıya daha önce verilen para birimini geri alabilirsiniz. Kullanıcı para birimini zaten harcamışsa para birimi bakiyesini negatif olarak ayarlamayı ve para birimi bakiyesi pozitif olana kadar uygulama etkinliğini ve gelecekteki satın alma işlemlerini sınırlamayı düşünebilirsiniz.
Birden fazla uyarı uygulama: İlk kez ihlalde bulunanlar için daha az sert önlemler almayı (ör. uygulama içi uyarılar gösterme) düşünebilirsiniz. Tekrar eden ihlaller için daha ciddi önlemler almayı düşünebilirsiniz.
Satın alma işlemlerini geçici olarak devre dışı bırakın: Birden fazla uyarı uygulamasına benzer şekilde, satın alma işlemlerinin neden geçersiz kılındığını daha ayrıntılı bir şekilde inceleyene kadar geçersiz kılınan satın alma işlemleri olan kullanıcılar için satın alma işlemlerini devre dışı bırakabilirsiniz.
Uygulamanıza erişimi geçici veya kalıcı olarak engelleme: Tekrarlanan kötü amaçlı etkinliklerin olduğu aşırı durumlarda, uygulamanıza erişimi geçici veya kalıcı olarak engellemeyi düşünebilirsiniz.
Voided Purchases API'ye sık sık çağrı yapın: Bir veya daha fazla geçersiz kılınmış satın alma işlemi tespit ettiğinizde, kullanıcının bunları kullanabilmesinden önce satın alma işlemlerini geri almak için Voided Purchases API'ye daha sık çağrı yapmayı düşünebilirsiniz. İptal Edilen Satın Alma İşlemleri API'si kotaları hakkında daha fazla bilgiyi İptal Edilen Satın Alma İşlemleri API'si belgelerinde bulabilirsiniz.
Google'ın sahtekarlığı gerçekleşmeden önce tespit etmesine yardımcı olma
Bazı sahtekarlık türleri, etkinliklerini gizlemek için birden fazla Google ve uygulama içi hesap oluşturan kötü niyetli kullanıcılarla ilgilidir.
Google'ın Google Hesaplarını uygulama içi hesaplarla eşlemesine yardımcı olmak için oluşturucuda setObfuscatedAccountId ve setObfuscatedProfileId yöntemlerini BillingFlowParams için kullanın.
Google, bu verileri şüpheli davranışları tespit etmek ve bazı sahtekarlık içeren işlem türlerini tamamlanmadan önce engellemek için kullanır.
Ticari marka ve telif hakkı ihlallerine karşı işlem yapma
İçerik yayınlamak veya yönetmek için uzak bir sunucu kullanıyorsanız uygulamanız, kullanıcı içeriğe her eriştiğinde kilidi açılan içeriğin satın alma durumunu doğrulayacak şekilde ayarlanmalıdır. Bu sayede, gerektiğinde kullanımı iptal edebilir ve korsanlığı en aza indirebilirsiniz. İçeriğinizin Google Play'de yeniden dağıtıldığını görürseniz hızlı ve kararlı bir şekilde hareket etmeniz gerekir. Daha fazla bilgi için Telif Hakkı Yardım Merkezi'ndeki Telif Hakkı ile İlgili Sık Sorulan Sorular sayfasına bakın.