Kontoübernahmen erkennen und verhindern

Auf dieser Seite wird gezeigt, wie Sie Kontoübernahmen mit reCAPTCHA Enterprise erkennen und verhindern.

ATO-Angriffe treten in der Regel auf, wenn ein Angreifer Anfragen sendet, um sich bei API-Endpunkten mit Anmeldedaten anzumelden. Diese werden auch als Passwort-Dump bezeichnet. Diese Art von Angriff kann erfolgreich sein, selbst wenn der Kennwort-dump von einer anderen Website stammt, da Menschen dazu neigen, Kennwörter über mehrere Konten hinweg wiederzuverwenden. Diese Art von Angriff hat keine Auswirkungen auf Nutzer, die ein bestimmtes Passwortkennwort verwenden, z. B. den Passwortmanager.

Mit reCAPTCHA Enterprise können Sie ATOs mit einer der folgenden Optionen erkennen und verhindern:

Kästchen "Ich bin kein Roboter"

Das Hinzufügen des Kästchens Ich bin kein Roboter zu Ihrer Website ist die schnellste und einfachste Möglichkeit, ATO-Schutz zu gewährleisten, ohne zusätzliche Funktionen wie SMS oder E-Mail-Bestätigung integrieren zu müssen. auf. Der Angreifer kann Kosten missbrauchen. Diese Option ist unter Umständen für einige Websites ausreichend.

Fügen Sie das Kästchen "Ich bin kein Roboter" auf Ihren Webseiten ein.

Im Folgenden finden Sie ein Beispiel für eine einfache Anmeldeseite, die durch das Kästchen geschützt ist.

function onSuccess(token) {
  // The token is included in the POST data in the g-recaptcha-response
  // parameter. The backend must create an Assessment with the token
  // and verify the token is valid.
  console.log(token);
}
<form id="loginForm" action="?" method="POST">
  Username: <input type="text" name="username"/><br/>
  Password: <input type="password" name="password"/><br/>
  <div class="g-recaptcha" data-sitekey="reCATCHA_sitekey"
       data-action="account_login" data-callback="onSuccess"></div>
</form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>

Sie können mit diesem Code in JSFiddle experimentieren. Klicken Sie dazu in der oberen rechten Ecke des Codefensters auf das Symbol <>.

<html>
  <head>
    <title>Account Login - Checkbox</title>
    <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
    <script>
    function onSuccess(token) {
      // The token is included in the POST data in the g-recaptcha-response
      // parameter. The backend must create an Assessment with the token
      // and verify the token is valid.
      console.log(token);
    }
    </script>
  </head>
  <body>
    <form id="loginForm" action="?" method="POST">
      Username: <input type="text" name="username"/><br/>
      Password: <input type="password" name="password"/><br/>
      <div class="g-recaptcha" data-sitekey="6LeAkOgUAAAAACcy3uY6N9H9SJMS27n3Zx2OOnYK"
           data-action="account_login" data-callback="onSuccess"></div>
    </form>
  </body>
</html>

Punktzahlen und individuelle Herausforderungen verwenden

Der beste Schutz vor ATOs ist die Nutzung von reCAPTCHA-basierten Websiteschlüsseln und die Herausforderungen der Multi-Faktor-Authentifizierung (MFA), wie E-Mail- und SMS-Herausforderungen, in denen einmalige Codes (OTPs) vorkommen. an den Nutzer gesendet werden.

Die folgenden Optionen zum Schutz vor ATOs:

Abhängig von Ihrem Anwendungsfall können Sie MFA allein oder mit punktbasierten Websiteschlüsseln verwenden. Zum Beispiel können Sie MFA-Herausforderungen nur für Punktzahlen unter einem bestimmten Schwellenwert verwenden, um Reibungspunkte zu reduzieren.

Das folgende Beispiel zeigt, wie Punktzahl-basierte Websiteschlüssel in das Anmeldeszenario integriert werden.

function submitForm() {
  grecaptcha.enterprise.ready(function() {
    grecaptcha.enterprise.execute(
      'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) {
       document.getElementById("token").value = token;
       document.getElementByID("loginForm").submit();
    });
  });
}
<form id="loginForm" action="?" method="POST">
  Username: <input type="text" name="username"/><br/>
  Password: <input type="password" name="password"/><br/>
  <input type="hidden" id="token" name="recaptcha_token"/>
  <button onclick="submitForm()">Login</button>
</form>
<script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>

Sie können mit diesem Code in JSFiddle experimentieren. Klicken Sie dazu in der oberen rechten Ecke des Codefensters auf das Symbol <>.

<html>
  <head>
    <title>Account Login - Score</title>
    <script src="https://www.google.com/recaptcha/enterprise.js" async defer></script>
    <script>
    function submitForm() {
      grecaptcha.enterprise.ready(function() {
        grecaptcha.enterprise.execute(
          'reCAPTCHA_site_key', {action: 'account_login'}).then(function(token) {
           document.getElementById("token").value = token;
           document.getElementByID("loginForm").submit();
        });
      });
    }
    </script>
  </head>
  <body>
    <form id="loginForm" action="?" method="POST">
      Username: <input type="text" name="username"/><br/>
      Password: <input type="password" name="password"/><br/>
      <input type="hidden" id="token" name="recaptcha_token"/>
      <button onclick="submitForm()">Login</button>
    </form>
  </body>
</html>