Auf dieser Seite wird beschrieben, wie Sie Kontoübernahmen (Account Takeovers, ATOs) mit reCAPTCHA erkennen und verhindern.
ATO-Angriffe treten normalerweise auf, wenn ein Angreifer Anfragen zur Anmeldung bei API-Endpunkten sendet. Dabei werden Anmeldedaten verwendet, die aus einer Datenpanne stammen. Diese werden auch als Kennwort-dumpbezeichnet. 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 funktioniert nicht gegen Nutzer, die eine angemessene Kennwortpraxis anwenden, z. B. mithilfe eines Kennwortmanagers.
Hinweis
Bereiten Sie Ihre Umgebung für reCAPTCHA vor.
ATOs erkennen und verhindern
Mit reCAPTCHA können Sie ATOs mit einer der folgenden Optionen erkennen und verhindern:
Kästchen „Ich bin kein Roboter“ verwenden
Das Hinzufügen des Kontrollkästchens Ich bin kein Roboter zu Ihrer Website ist der schnellste und einfachste Weg, um einen gewissen Schutz gegen ATOs zu bieten, ohne zusätzliche Funktionen wie SMS- oder E-Mail-Bestätigung integrieren zu müssen. Es verursacht Kosten für einen Angreifer, diesen Schutz aufzuheben. Diese Option kann für einige Websites ausreichend sein.
Fügen Sie das Kästchen „Ich bin kein Roboter“ auf Ihren Webseiten hinzu.
Der folgende Code ist ein Live-Beispiel für eine 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 benutzerdefinierte Abfragen verwenden
Verwenden Sie zum Schutz vor ATOs die auf reCAPTCHA-Punktzahlen basierenden Schlüssel und Multi-Faktor-Authentifizierung (MFA) wie E-Mail- und SMS-Abfragen mit Einmal-Codes („One-time password“, OTPs), die an den Nutzer gesendet werden.
Berücksichtigen Sie die folgenden Optionen, um auf Punktzahlen basierende Schlüssel und benutzerdefinierte Abfragen zu verwenden:
Installieren Sie auf Punktzahlen basierende Schlüssel, um die Automatisierung bei groß angelegten ATOs zu erkennen.
Informationen zum Installieren von auf Punktzahlen basierenden Schlüsseln auf Webseiten finden Sie unter Auf Punktzahlen basierende Schlüssel auf Webseiten installieren.
Informationen zum Installieren von auf Punktzahlen basierenden Schlüsseln in mobilen Anwendungen finden Sie unter reCAPTCHA in Android-Apps einbinden. oder reCAPTCHA in iOS-Apps einbinden.
Verwenden Sie MFA, um die Kontoinhaberschaft bei der Anmeldung oder für vertrauliche Aktionen zu bestätigen.
Weitere Informationen finden Sie unter Multi-Faktor-Authentifizierung konfigurieren.
Je nach Anwendungsfall können Sie MFA alleine oder mit auf Punktzahlen basierenden Schlüsseln verwenden. Beispiel: Sie können MFA-Herausforderungen nur für Punktzahlen unter einem bestimmten Schwellenwert verwenden, um Reibungen zu reduzieren.
Das folgende Beispiel zeigt, wie auf Punktzahlen basierende Schlü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>Nächste Schritte
- Weitere Informationen zu anderen Kontoschutzfunktionen finden Sie unter Kontoschutzfunktionen.