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

Uygulamanızın popülerliği 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ı önlemek ve uygulamanızdaki kötüye kullanım etkisini azaltmak için uygulamanız gereken öneriler açıklanmaktadır.

Hassas mantığı arka uçunuza taşıyın

Uygulama tasarımınız izin verdiği ölçüde hassas verileri ve mantığı, kontrol ettiğiniz bir arka uç sunucuya taşıyın. Bir ön uç cihazda ne kadar fazla veri ve mantık varsa cihazın değiştirilmeye veya bozulmaya karşı o kadar savunmasızdır.

Örneğin, bir online satranç oyunu, kullanıcı arayüzünün her zaman geçerli hamleler gönderdiğine güvenmek yerine tüm hamleleri arka uçta doğrulamalıdır.

Ayrıca, sistem tasarımınıza bağlı olarak, güvenlik açıkları veya güvenlik sorunları bulursanız ön uç yerine arka uçta hata ayıklama, düzeltme ve güncelleme yayınlama işlemini yapmak daha kolay olabilir.

Hak vermeden önce satın alma işlemlerini doğrulama

Arka uçta ele alınması gereken hassas veri ve mantıkla ilgili ö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şleminin purchaseToken değerinin önceki purchaseToken değerleriyle eşleşmediğini doğrulayın. purchaseToken, dünya genelinde benzersiz olduğundan bu değeri veritabanınızda birincil anahtar olarak güvenle kullanabilirsiniz.
  3. Satın alma işleminin Google tarafından geçerli olduğunu doğrulamak için Google Play Developer API'deki Purchases.products:get veya Purchases.subscriptionsv2:get uç noktalarını kullanın.
  4. Satın alma işlemi geçerliyse ve daha önce kullanılmadıysa uygulama içi öğeye veya aboneliğe erişim iznini güvenli bir şekilde verebilirsiniz.
  5. Aboneliklerde, Purchases.subscriptionsv2:get'te linkedPurchaseToken ayarlandığında, birden fazla kullanıcının aynı satın alma işlemini yapamamasını sağlamak için linkedPurchaseToken'yi veritabanınızdan kaldırmanız ve linkedPurchaseToken'ye verilen hakkı iptal etmeniz gerekir.
  6. Yalnızca satın alma durumu PURCHASED olduğunda hak vermelisiniz ve PENDING satın alma işlemlerini doğru şekilde işlediğinizden emin olun. CANCELED satın alma işlemlerinde ani bir artış varsa satın alma işlemi hâlâ PENDING durumundayken hak veriyorsunuz demektir. Daha fazla bilgiyi Onay bekleyen işlemleri işleme başlıklı makalede bulabilirsiniz.
  7. Kullanım hakkı verildikten sonra, tüketim amaçlı bir ürünü kullanmak ve onaylamak istiyorsanız güvenli arka uç sunucunuzda Purchases.products:consume Play Developer API'yi kullanın. Kullanılamayacak 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. Onay, Google Play'e kullanıcıya satın alma hakkı verildiğini bildirdiği için gereklidir. Yetki verdikten hemen sonra satın alma işlemini onaylamanız gerekir.

    Satın alma işlemini istemci tarafında uygulamanız aracılığıyla onaylayabilir veya kullanabilirsiniz. Ancak sunucu tarafı API'ler, zayıf ağ bağlantısı ve kötü amaçlı etkinlikler 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 varsayalım. Sunucu onayı olmadan, kullanıcının onay sürecini tamamlamak için uygulama üzerinden tekrar giriş yapması gerekebilir. Aksi takdirde, kullanıcı üç gün içinde tekrar oturum açmazsa satın alma işleminin onaylanmaması nedeniyle otomatik olarak geri ödeme yapılır. Sunucu onayı, Google Play sunucuyu satın alma işleminin geçerli olduğu konusunda bilgilendirir ve bu onayı gönderir. Böylece bu senaryoyu önler.

    Satın alma onayı ve tüketim 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ü amaçlı kullanıcıların kilidi açılmış içeriğinizi yeniden dağıtmasını önlemek için APK dosyanıza eklemeyin. 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. Gerçek zamanlı bir hizmet aracılığıyla içerik yayınlamak, içeriğinizin güncel kalmasını da sağlar.
  • İçeriğinizi yayınlamak için uzak bir sunucu kullanın.

Uzaktan bir sunucudan veya gerçek zamanlı bir hizmetten içerik yayınlarken, kilidi açılan içeriği cihaz belleğine veya cihazın SD kartına kaydedebilirsiniz. İçerikleri SD kartta depoluyorsanız içeriği şifrelediğinizden ve cihaza özel bir şifreleme anahtarı kullandığınızdan emin olun.

Geçersiz satın alma işlemlerini algılama ve işleme

Geçersiz kılınan satın alma işlemleri, iptal edilen, iptal edilen veya geri ödeme yapılan satın alma işlemleridir. İptal edilen bir satın alma işlemi daha önce kullanıcıya uygulama içi öğeler veya başka içerikler sağladıysa İptal Edilen Satın Alma İşlemleri API'sini kullanarak satın alma işleminin iptal edilme nedenini ve geri alabileceğiniz ilişkili içerikleri öğrenebilirsiniz.

Uygulama içi öğe ve abonelik satın alma işlemleri aşağıdakiler dahil olmak üzere çeşitli nedenlerle geçersiz kılınabilir:

  • Satın alma işlemi, kullanıcı, geliştirici veya Google tarafından iptal edilir (onaylanmamış ve otomatik olarak iptal edilen satın alma işlemleri dahil). Aboneliklerde bu işlemin, aboneliğin kendisini iptal etmek yerine aboneliğin satın alınmasını iptal ettiğini unutmayın.
  • Bir satın alma işlemi için ters ibraz yapılır.
  • Uygulama geliştirici, kullanıcı siparişini iptal eder veya geri ödeme yapar ve konsolda "geri alma" 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 şekline karar verebilirsiniz. Aşağıdakilerden birini veya daha fazlasını uygulamanızı öneririz:

  • Geri alma işlemi gerçekleştirin: Bir satın alma işlemi geçersiz kılındığında, kullanılmayan öğ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ınırsa kullanıcıya önceden verilmiş para birimini geri alabilirsiniz. Kullanıcının para birimini zaten harcamış olması durumunda, para birimi bakiyesini negatif olarak ayarlayabilir ve para birimi bakiyesi pozitif olana kadar uygulama etkinliğini ve gelecekteki satın alma işlemlerini sınırlayabilirsiniz.
  • Birden fazla ihtar uygulaması: İlk kez ihlal eden kullanıcılar için uygulama içi uyarılar gösterme gibi daha az sert önlemler alabilirsiniz. Tekrarlanan ihlallerde daha ciddi önlemler alınabilir.
  • Satın alma işlemlerini geçici olarak devre dışı bırakma: Birden fazla ihtar uygulamasına benzer şekilde, satın alma işlemlerinin neden geçersiz kılındığını daha ayrıntılı bir şekilde araştırana 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 geçici veya kalıcı olarak erişim izni vermeyin: Tekrarlanan kötü amaçlı etkinliklerin olduğu aşırı durumlarda, uygulamanıza geçici veya kalıcı olarak erişim izni vermemeyi düşünebilirsiniz.
  • İptal Edilen Satın Alma İşlemleri API'sine sık sık çağrı gönderin: Bir veya daha fazla iptal edilen satın alma işlemi algıladığınızda, kullanıcılar satın alma işlemlerini kullanmadan önce geri almak için İptal Edilen Satın Alma İşlemleri API'sine daha sık çağrı gönderebilirsiniz. Voided Purchases API kotaları hakkında daha fazla bilgiyi Voided Purchases API dokümanlarında 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ü amaçlı kullanıcılarla ilgilidir.

Google'ın Google Hesaplarını uygulama içi hesaplarla eşlemesine yardımcı olmak için BillingFlowParamssetObfuscatedAccountId ve setObfuscatedProfileId yöntemlerini oluşturucuda kullanın.

Google, şüpheli davranışları tespit etmek ve bazı sahtekarlık türlerini tamamlanmadan önce engellemek için bu verilerden yararlanır.

Ticari marka ve telif hakkı ihlalleriyle ilgili işlem yapma

İçerik yayınlamak veya yönetmek için uzak bir sunucu kullanıyorsanız uygulamanızın, kullanıcı içeriğe her eriştiğinde kilidi açılmış içeriğin satın alma durumunu doğrulamasını sağlayın. 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 etmeyi unutmayın. Daha fazla bilgi için Telif Hakkı Yardım Merkezi'ndeki Telif Hakkıyla İlgili Sık Sorulan Sorular sayfasına bakın.