Betrug und Missbrauch bekämpfen

Google Play setzt sich für die Sicherheit von Nutzern und Entwicklern ein. Wir wissen, dass der Aufbau eines erfolgreichen App-Geschäfts auf einer vertrauenswürdigen Plattform basiert, die Ihre Investitionen schützt, indem sie proaktiv gegen böswillige Akteure vorgeht.

In diesem Dokument finden Sie Empfehlungen, wie Sie Angriffe auf Ihre Abrechnungseinbindung verhindern und die Auswirkungen von Missbrauch in Ihrer App reduzieren können.

Schutz verbessern

Die folgenden APIs und Tools können Risiken in Ihrer App minimieren:

  • Voided Purchases API: Widerrufen Sie den Zugriff auf stornierte Bestellungen.
  • Verschleierte Konto-ID: Hilft dabei zu erkennen, wenn Käufe auf mehreren Geräten innerhalb kurzer Zeit über dasselbe Konto getätigt werden.
  • Backend-Nutzung: Mit Tools wie Purchases.products:consume wird die Geschäftslogik auf Ihre sicheren Backends verlagert, wodurch Manipulationen auf Clientseite verhindert werden. Zusätzlich zur Verwendung dieser Plattform-APIs sollten Sie die folgenden Best Practices anwenden, um Ihre Einbindungen weiter vor unbefugtem Zugriff zu schützen.

Standort-Spoofing verhindern

Google Play bietet integrierte Schutzmaßnahmen, um zu verhindern, dass böswillige Akteure falsche Standorte verwenden, um regionale Währungsunterschiede auszunutzen (auch als Standort-Spoofing bezeichnet), Werbeaktionen und Anreize für Abos zu missbrauchen und Geschenkkartenbetrug zu begehen.

Sensible Logik in Ihr Backend verlagern

Lagern Sie sensible Daten und Logik so weit wie möglich auf einen Backend-Server aus, den Sie kontrollieren. Je mehr Daten und Logik sich auf einem Frontend-Gerät befinden, desto anfälliger ist es für Änderungen oder Manipulationen.

In einem Online-Schachspiel sollten beispielsweise alle Züge im Backend validiert werden, anstatt darauf zu vertrauen, dass das Frontend immer zulässige Züge sendet.

Wenn Sie außerdem Schwachstellen oder Sicherheitsprobleme finden, ist es je nach Systemdesign möglicherweise einfacher, Fehler zu beheben und Updates im Backend bereitzustellen als im Frontend.

Käufe bestätigen, bevor Berechtigungen erteilt werden

Ein Sonderfall sensibler Daten und Logik, der im Backend verarbeitet werden sollte, ist die Bestätigung von Käufen. Nachdem ein Nutzer einen Kauf getätigt hat, sollten Sie Folgendes tun:

  • Senden Sie das entsprechende purchaseToken an Ihr Backend. Das bedeutet, dass Sie einen Datensatz aller purchaseToken-Werte für alle Käufe führen sollten.
  • Prüfen Sie, ob der purchaseToken-Wert für den aktuellen Kauf nicht mit einem früheren purchaseToken-Wert übereinstimmt. purchaseToken ist global eindeutig, daher können Sie diesen Wert sicher als Primärschlüssel in Ihrer Datenbank verwenden.
  • Verwenden Sie die Endpunkte Purchases.products:get oder Purchases.subscriptionsv2:get in der Google Play Developer API, um den Kauf mit Google zu überprüfen, dass er legitim ist.
  • Wenn der Kauf legitim ist und in der Vergangenheit nicht verwendet wurde, können Sie die Berechtigung für den In‑App-Artikel oder das Abo sicher erteilen.
  • Wenn für Abos linkedPurchaseToken in Purchases.subscriptionsv2:get festgelegt ist, sollten Sie linkedPurchaseToken auch aus Ihrer Datenbank entfernen und die Berechtigung widerrufen, die für linkedPurchaseToken erteilt wurde, damit nicht mehrere Nutzer Anspruch auf denselben Kauf haben.
  • Sie sollten die Berechtigung nur erteilen, wenn der Kaufstatus PURCHASED ist, und darauf achten, dass Sie PENDING-Käufe korrekt verarbeiten. Wenn es zu einem Anstieg der CANCELED-Käufe kommt, erteilen Sie möglicherweise Berechtigungen, wenn sich der Kauf noch im Status PENDING befindet. Weitere Informationen finden Sie unter Ausstehende Transaktionen verarbeiten.
  • Wenn Sie nach dem Erteilen der Berechtigung ein verbrauchbares Produkt nutzen und bestätigen möchten, verwenden Sie die Play Developer API Purchases.products:consume auf Ihrem sicheren Backend-Server. Um ein nicht verbrauchbares Produkt oder ein Abo zu bestätigen, rufen Sie den entsprechenden Play Developer API-Endpunkt auf Ihrem sicheren Backend-Server auf, entweder Purchases.products:acknowledge oder Purchases.subscriptions:acknowledge. Die Bestätigung ist erforderlich, da Google Play dadurch darüber informiert wird, dass der Nutzer die Berechtigung für den Kauf erhalten hat. Sie sollten den Kauf sofort nach dem Erteilen der Berechtigung bestätigen.

    Sie können den Kauf zwar auf Clientseite über Ihre App quittieren oder aufnehmen, aber serverseitige APIs bieten zusätzlichen Schutz vor Problemen wie einer schlechten Netzwerkverbindung und schädlichen Aktivitäten. Angenommen, ein Nutzer hat einen Artikel in Ihrer App gekauft, aber die Netzwerkverbindung ist unterbrochen, während der Kauf bestätigt wird. Ohne serverseitige Bestätigung muss sich der Nutzer möglicherweise noch einmal über die App anmelden, um den Bestätigungsvorgang abzuschließen. Wenn sich der Nutzer nicht innerhalb von drei Tagen wieder anmeldet, wird der Kauf aufgrund fehlender Kaufbestätigung automatisch erstattet. Die serverseitige Bestätigung verhindert dieses Szenario, indem die Bestätigung gesendet wird, sobald Google Play den Server darüber informiert, dass der Kauf gültig ist.

Weitere Informationen zur Kaufbestätigung und -nutzung finden Sie unter Käufe verarbeiten.

Freigeschaltete Inhalte schützen

Damit böswillige Nutzer Ihre freigeschalteten Inhalte nicht weiterverbreiten können, bündeln Sie sie nicht in Ihrer APK-Datei. Führen Sie stattdessen einen der folgenden Schritte aus:

  • Verwenden Sie einen Echtzeitdienst, um Ihre Inhalte bereitzustellen, z. B. einen Content-Feed. Wenn Sie Inhalte über einen Echtzeitdienst bereitstellen, können Sie Ihre Inhalte auch auf dem neuesten Stand halten.
  • Verwenden Sie einen Remote-Server, um Ihre Inhalte bereitzustellen. Wenn Sie Inhalte von einem Remote-Server oder einem Echtzeitdienst bereitstellen, können Sie die freigeschalteten Inhalte im Gerätespeicher oder auf der SD-Karte des Geräts speichern. Wenn Sie Inhalte auf einer SD-Karte speichern, verschlüsseln Sie sie und verwenden Sie einen gerätespezifischen Verschlüsselungsschlüssel.

Stornierte Käufe erkennen und verarbeiten

Stornierte Käufe sind Käufe, die storniert, widerrufen oder zurückgebucht wurden. Wenn durch einen stornierten Kauf zuvor In‑App-Artikel oder andere Inhalte für einen Nutzer freigeschaltet wurden, können Sie mit der Voided Purchases API den Grund für die Stornierung des Kaufs sowie alle zugehörigen Inhalte abrufen, die Sie zurückfordern können.

Käufe von In‑App-Artikeln und Abos können aus verschiedenen Gründen storniert werden, z. B.:

  • Ein Kauf wird storniert, entweder vom Nutzer, vom Entwickler oder von Google (einschließlich nicht bestätigter automatisch stornierter Käufe). Bei Abos bezieht sich dies auf die Stornierung des Kaufs eines Abos und nicht auf die Stornierung des Abos selbst.
  • Ein Kauf wird zurückgebucht.
  • Der App-Entwickler storniert oder erstattet eine Nutzerbestellung und aktiviert in der Console die Option „Widerrufen“. Je nach Grund für den stornierten Kauf und unter Berücksichtigung der bisherigen Verhaltensdaten des Nutzers können Sie eine Vorgehensweise festlegen. Wir empfehlen, eine oder mehrere der folgenden Maßnahmen zu ergreifen:

  • Rückbuchungen durchführen:Wenn ein Kauf storniert wird, können Sie nicht verwendete Artikel zurückfordern, als wären sie nie gekauft worden. Wenn beispielsweise ein Kauf von In‑Game-Währung storniert wurde, können Sie die Währung zurückfordern, die dem Nutzer bereits gutgeschrieben wurde. Wenn der Nutzer die Währung bereits ausgegeben hat, können Sie das Währungsguthaben auf einen negativen Wert setzen und die App-Aktivitäten und zukünftigen Käufe einschränken, bis das Währungsguthaben wieder positiv ist.

  • Mehrere Verwarnungen implementieren:Ergreifen Sie bei Ersttätern weniger drastische Maßnahmen, z. B. In‑App-Warnungen. Bei Wiederholungstätern sollten Sie strengere Maßnahmen in Betracht ziehen.

  • Käufe vorübergehend deaktivieren:Ähnlich wie bei der Implementierung mehrerer Verwarnungen können Sie Käufe für Nutzer mit stornierten Käufen deaktivieren, bis Sie genauer untersucht haben, warum die Käufe storniert wurden.

  • Zugriff auf Ihre App vorübergehend oder dauerhaft sperren:In extremen Fällen mit wiederholten böswilligen Aktivitäten können Sie den Zugriff auf Ihre App vorübergehend oder dauerhaft sperren.

  • Häufige Aufrufe der Voided Purchases API:Wenn Sie einen oder mehrere stornierte Käufe feststellen, sollten Sie die Voided Purchases API häufiger aufrufen, um Käufe zurückzufordern, bevor der Nutzer sie nutzen kann. Weitere Informationen zu den Kontingenten für die Voided Purchases API finden Sie in der Dokumentation zur Voided Purchases API.

    Google helfen, Betrug zu erkennen, bevor er passiert

Einige Arten von Betrug sind auf böswillige Nutzer zurückzuführen, die mehrere Google- und In‑App-Konten erstellen, um ihre Aktivitäten zu verbergen.

Verwenden Sie die setObfuscatedAccountId und setObfuscatedProfileId Methoden im Builder für BillingFlowParams, damit Google Google-Konten In‑App-Konten zuordnen kann.

Google verwendet diese Daten, um verdächtiges Verhalten zu erkennen und einige Arten von betrügerischen Transaktionen zu blockieren, bevor sie abgeschlossen werden.

Maßnahmen gegen Marken- und Urheberrechtsverletzungen

Wenn Sie einen Remote-Server verwenden, um Inhalte bereitzustellen oder zu verwalten, lassen Sie Ihre App den Kaufstatus der freigeschalteten Inhalte überprüfen, wenn ein Nutzer auf die Inhalte zugreift. So können Sie die Nutzung bei Bedarf widerrufen und Piraterie minimieren. Wenn Sie feststellen, dass Ihre Inhalte auf Google Play weiterverbreitet werden, sollten Sie schnell und entschlossen handeln. Weitere Informationen finden Sie auf der Seite Häufig gestellte Fragen zum Urheberrecht in der Hilfe zum Urheberrecht .