Sahtekarlık ve kötüye kullanımla mücadele

Uygulamanızın popülaritesi arttıkça, uygulamanızı kötüye kullanmak isteyen kötü niyetli kullanıcıların da dikkatini çekebilir. Bu konuda, faturalandırma entegrasyonunuza yönelik bu saldırıları önlemeye ve uygulamanızdaki kötüye kullanımın etkisini azaltmaya yardımcı olacak öneriler açıklanmaktadır.

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 yayınlamak 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 alma işleminin doğrulanması ve onaylanmasıdır. Kullanıcı satın alma işlemi yaptıktan sonra şunları yapmanız gerekir:

  1. İlgili purchaseToken değerini arka ucunuza gönderin. Bu nedenle, tüm satın alma işlemleri için tüm purchaseToken değerlerinin kaydını tutmanız gerekir.
  2. 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 güvenle birincil anahtar olarak kullanabilirsiniz.
  3. Google Play Developer API'deki Purchases.products:get veya Purchases.subscriptionsv2:get uç noktalarını kullanarak satın alma işleminin meşru olduğunu Google ile doğrulayın.
  4. Satın alma işlemi meşruysa ve daha önce kullanılmadıysa uygulama içi öğe veya abonelik için güvenli bir şekilde hak verebilirsiniz.
  5. Aboneliklerde, Purchases.subscriptionsv2:get içinde linkedPurchaseToken ayarlandığında, birden fazla kullanıcının aynı satın alma işleminden yararlanmaması için linkedPurchaseToken değerini veritabanınızdan da kaldırmanız ve linkedPurchaseToken için verilen hakkı iptal etmeniz gerekir.
  6. Yetkiyi yalnızca satın alma durumu PURCHASED olduğunda vermeli ve PENDING satın alma işlemlerini doğru şekilde ele aldığınızdan emin olmalısınız. CANCELED satın alma işlemlerinde artış varsa satın alma işlemi hâlâ PENDING durumundayken hak veriyor olabilirsiniz. Daha fazla bilgiyi Bekleyen işlemleri işleme başlıklı makalede bulabilirsiniz.
  7. Kullanım hakkı verdikten sonra tüketilebilir bir ürünü tüketip 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 kullanabileceğ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 oturum açmazsa satın alma işlemi, satın alma onayı eksikliği nedeniyle 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şlemlerinin 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, feshedilen veya geri ödenen satın alma işlemleridir. Geçersiz kılınan bir satın alma işlemi daha önce bir kullanıcıya uygulama içi öğeler veya başka içerikler vermişse satın alma işleminin geçersiz kılınma nedenini ve geri alabileceğiniz ilişkili içerikleri öğrenmek için Geçersiz Kılınan Satın Alma İşlemleri API'sini kullanabilirsiniz.

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 olarak iptal edilen satın alma işlemleri dahil) Abonelikler için bu işlemin, aboneliğin kendisini iptal etmek yerine aboneliğin 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 "iptal et" seçeneğini işaretler.

İptal edilen satın alma işleminin nedenine bağlı olarak ve önceki kullanıcı davranış verilerini de göz önünde bulundurarak bir işlem planına 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 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ı uygulaması: İlk kez ihlalde bulunanlar için uygulama içi uyarılar gösterme gibi daha az sert önlemler almayı düşünebilirsiniz. Tekrar suç işleyenler için daha ciddi önlemler alınabilir.
  • 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ırakmayı düşünebilirsiniz.
  • 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.
  • İptal edilen satın alma işlemleri API'sine sık sık çağrı gönderin: Bir veya daha fazla iptal edilen satın alma işlemi tespit ettiğinizde, kullanıcı bunları kullanmadan önce satın alma işlemlerini geri almak için İptal Edilen Satın Alma İşlemleri API'sine daha sık çağrı göndermeyi düşünebilirsiniz. Voided Purchases API kotaları hakkında daha fazla bilgiyi Voided Purchases API 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 BillingFlowParams için setObfuscatedAccountId ve setObfuscatedProfileId yöntemlerini 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 tasarlanmalı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ıyla İlgili Sık Sorulan Sorular sayfasına bakın.