Halaman ini menjelaskan cara mendeteksi dan mencegah pengambilalihan akun (ATO) menggunakan Google Cloud Fraud Defense.
Serangan ATO biasanya terjadi saat penyerang mengirim permintaan untuk login ke endpoint API menggunakan kredensial yang diperoleh dari pelanggaran data, yang juga dikenal sebagai dump sandi. Jenis serangan ini dapat berhasil, meskipun dump sandi berasal dari situs yang tidak terkait, karena manusia cenderung menggunakan ulang sandi di beberapa akun. Jenis serangan ini tidak memengaruhi pengguna yang menerapkan kebersihan sandi yang tepat, seperti menggunakan pengelola sandi.
Sebelum memulai
Siapkan lingkungan Anda untuk Google Cloud Fraud Defense.
Mendeteksi dan mencegah ATO
Dengan Fraud Defense, Anda dapat mendeteksi dan mencegah ATO menggunakan salah satu opsi berikut:
Menggunakan kotak centang Saya bukan robot
Menambahkan kotak centang Saya bukan robot ke situs Anda adalah cara tercepat dan termudah untuk memberikan perlindungan terhadap pengambilalihan akun tanpa harus mengintegrasikan fitur tambahan, seperti verifikasi SMS atau verifikasi email. Penyerang harus mengeluarkan biaya untuk menembus perlindungan ini dan opsi ini mungkin cukup untuk beberapa situs.
Tambahkan kotak centang "Saya bukan robot" di halaman web Anda.
Kode berikut adalah contoh aktif halaman login yang dilindungi oleh kotak centang:
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>
Anda dapat bereksperimen dengan kode ini di JSFiddle dengan mengklik ikon <> di sudut kanan atas jendela kode.
<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>Menggunakan skor dan tantangan kustom
Untuk melindungi dari ATO, gunakan kunci berbasis skor Fraud Defense dan gunakan verifikasi Autentikasi multi-faktor (MFA), seperti verifikasi email dan SMS yang mengirimkan kode sekali pakai (OTP) kepada pengguna.
Untuk menggunakan kunci berbasis skor dan tantangan kustom, pertimbangkan opsi berikut:
Instal kunci berbasis skor untuk mendeteksi otomatisasi dalam ATO berskala besar.
Untuk menginstal kunci berbasis skor di halaman web, lihat Menginstal kunci berbasis skor di halaman web.
Untuk menginstal kunci berbasis skor di aplikasi seluler, lihat Mengintegrasikan Fraud Defense dengan aplikasi Android atau Mengintegrasikan Fraud Defense dengan aplikasi iOS.
Gunakan MFA untuk memverifikasi kepemilikan akun saat login atau untuk tindakan sensitif.
Untuk mengetahui informasi selengkapnya, lihat Mengonfigurasi Autentikasi Multi-Faktor.
Bergantung pada kasus penggunaan, Anda dapat menggunakan MFA sendiri atau dengan kunci berbasis skor. Misalnya, Anda mungkin lebih memilih untuk menggunakan tantangan MFA hanya untuk skor di bawah nilai minimum tertentu guna mengurangi hambatan.
Contoh berikut menunjukkan cara mengintegrasikan kunci berbasis skor dalam skenario login.
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>
Anda dapat bereksperimen dengan kode ini di JSFiddle dengan mengklik ikon <> di sudut kanan atas jendela kode.
<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>Langkah berikutnya
- Untuk mempelajari fitur perlindungan akun lainnya, lihat Fitur perlindungan akun pengguna.