Betrug und Missbrauch bekämpfen

Wenn Ihre App immer beliebter wird, kann sie auch die unerwünschte Aufmerksamkeit böswilliger Nutzer auf sich ziehen, die Ihre App möglicherweise missbrauchen möchten. In diesem Thema werden Empfehlungen beschrieben, mit denen Sie diese Angriffe auf Ihre Abrechnungsintegration verhindern und die Auswirkungen von Missbrauch in Ihrer App verringern können.

Vertrauliche Logik in Ihr Backend verschieben

Verschieben Sie sensible Daten und Logik nach Möglichkeit auf einen von Ihnen verwalteten Backend-Server. Je mehr Daten und Logik auf einem Frontend-Gerät vorhanden sind, desto anfälliger ist es für Manipulationen.

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

Wenn Sie Sicherheitslücken oder Sicherheitsprobleme finden, ist es je nach Systemdesign möglicherweise einfacher, Fehler im Backend zu beheben und Updates dort einzuführen, anstatt im Frontend.

Käufe vor dem Gewähren von Berechtigungen prüfen

Ein Sonderfall sensibler Daten und Logik, der im Backend verarbeitet werden sollte, ist die Kaufbestätigung. Nachdem ein Nutzer etwas gekauft hat, solltest du Folgendes tun:

  1. Senden Sie die entsprechende purchaseToken an Ihr Backend. Sie sollten also für alle Käufe alle purchaseToken-Werte erfassen.
  2. Der purchaseToken-Wert für den aktuellen Kauf darf nicht mit früheren purchaseToken-Werten übereinstimmen. purchaseToken ist weltweit eindeutig, sodass Sie diesen Wert sicher als Primärschlüssel in Ihrer Datenbank verwenden können.
  3. Verwende die Endpunkte Purchases.products:get oder Purchases.subscriptionsv2:get in der Google Play Developer API, um bei Google zu prüfen, ob der Kauf legitim ist.
  4. 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 gefahrlos gewähren.
  5. Wenn für Abos linkedPurchaseToken in Purchases.subscriptionsv2:get festgelegt ist, sollten Sie auch die linkedPurchaseToken aus Ihrer Datenbank entfernen und die Berechtigung widerrufen, die der linkedPurchaseToken gewährt wurde, damit mehrere Nutzer nicht zum selben Kauf berechtigt sind.
  6. Sie sollten die Berechtigung nur gewähren, wenn der Kaufstatus PURCHASED ist, und die PENDING-Käufe korrekt verarbeiten. Wenn es einen Anstieg der CANCELED-Käufe gibt, gewähren Sie möglicherweise Berechtigungen, während der Kauf noch den Status PENDING hat. Weitere Informationen finden Sie unter Ausstehende Transaktionen bearbeiten.
  7. Wenn Sie nach der Gewährung der Berechtigung ein Verbrauchsprodukt nutzen und bestätigen möchten, verwenden Sie die Purchases.products:consume Play Developer API auf Ihrem sicheren Backend-Server. Wenn Sie ein nicht verbrauchbares Produkt oder ein Abo bestätigen möchten, rufen Sie den entsprechenden Play Developer API-Endpunkt entweder Purchases.products:acknowledge oder Purchases.subscriptions:acknowledge auf Ihrem sicheren Backend-Server auf. Die Bestätigung ist erforderlich, da Google Play dadurch darüber informiert wird, dass dem Nutzer die Berechtigung zum Kauf gewährt wurde. Sie sollten den Kauf direkt nach der Erteilung der Berechtigung bestätigen.

    Sie können den Kauf zwar auf der Clientseite über Ihre App bestätigen oder nutzen, serverseitige APIs bieten jedoch zusätzlichen Schutz vor Problemen wie schlechter Netzwerkverbindung und schädlichen Aktivitäten. Angenommen, ein Nutzer hat einen Artikel in Ihrer App gekauft, aber die Netzwerkverbindung wurde unterbrochen, während der Kauf bestätigt wurde. Ohne Serverbestätigung muss sich der Kunde möglicherweise noch einmal über die App anmelden, um den Bestätigungsvorgang abzuschließen. Andernfalls wird der Kauf automatisch erstattet, da keine Kaufbestätigung vorliegt. Mit der Serverbestätigung wird dieses Szenario verhindert, da die Bestätigung gesendet wird, sobald Google Play den Server darüber informiert, dass der Kauf gültig ist.

    Weitere Informationen zur Bestätigung und Nutzung von Käufen findest du unter Käufe verarbeiten.

Inhalte, die du freigeschaltet hast, schützen

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

  • Verwenden Sie einen Echtzeitdienst, um Ihre Inhalte bereitzustellen, z. B. einen Inhaltsfeed. Wenn Sie Inhalte über einen Echtzeitdienst bereitstellen, können Sie sie auch immer auf dem neuesten Stand halten.
  • Verwende einen Remote-Server, um deine Inhalte bereitzustellen.

Wenn du Inhalte von einem Remote-Server oder einem Echtzeitdienst bereitstellst, kannst du die entsperrten 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.

Ungültige Käufe erkennen und verarbeiten

Unwirksame Käufe sind Käufe, die storniert, widerrufen oder zurückgebucht wurden. Wenn ein Nutzer durch einen annullierten Kauf zuvor In-App-Artikel oder andere Inhalte erhalten hat, können Sie mithilfe der API für annullierte Käufe den Grund für die Annullierung 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 annulliert 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 Kündigung des Abos selbst.
  • Ein Kauf wird rückgebucht.
  • Der App-Entwickler storniert oder erstattet eine Nutzerbestellung und klickt in der Konsole auf die Option „Widerrufen“.

Je nach Grund für die Stornierung und unter Berücksichtigung der bisherigen Nutzerdaten kannst du eine Maßnahme ergreifen. Wir empfehlen, mindestens eine der folgenden Maßnahmen zu ergreifen:

  • Artikel zurückziehen:Wenn ein Kauf annulliert wird, können Sie nicht verwendete Artikel zurückziehen, als wären sie nie gekauft worden. Wenn beispielsweise ein Kauf von In-Game-Währung annulliert wurde, können Sie die Währung zurückfordern, die dem Nutzer bereits gewährt wurde. Wenn der Nutzer die Währung bereits ausgegeben hat, können Sie das Währungsguthaben auf einen negativen Wert setzen und App-Aktivitäten und zukünftige Käufe einschränken, bis das Währungsguthaben wieder positiv ist.
  • Implementierung mehrerer Verwarnungen:Sie können bei Ersttätern weniger drastische Maßnahmen ergreifen, z. B. In-App-Warnungen anzeigen. 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 untersuchen können, warum die Käufe storniert wurden.
  • Vorübergehenden oder dauerhaften Zugriff auf Ihre App verweigern:In extremen Fällen mit wiederholt schädlichen Aktivitäten sollten Sie den Zugriff auf Ihre App entweder vorübergehend oder dauerhaft verweigern.
  • Häufigere Aufrufe der Voided Purchases API: Wenn Sie einen oder mehrere stornierte Käufe erkennen, sollten Sie die Voided Purchases API häufiger aufrufen, um Käufe zurückzunehmen, bevor der Nutzer sie nutzen kann. Weitere Informationen zu Kontingenten für die Voided Purchases API finden Sie in der Dokumentation zur Voided Purchases API.

Helfen Sie Google, Betrug zu erkennen, bevor er passiert

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

Verwenden Sie die Methoden setObfuscatedAccountId und setObfuscatedProfileId im Builder für BillingFlowParams, um Google dabei zu helfen, Google-Konten zu In-App-Konten zuzuordnen.

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

Maßnahmen bei Marken- und Urheberrechtsverletzungen

Wenn Sie einen Remote-Server zum Bereitstellen oder Verwalten von Inhalten verwenden, muss Ihre App den Kaufstatus der entsperrten Inhalte prü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 bei Google Play weiterverteilt 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.