Dokumen ini menunjukkan cara menyiapkan perlindungan ekspres reCAPTCHA WAF (reCAPTCHA WAF express) di server aplikasi tanpa mengintegrasikan reCAPTCHA JavaScript (web) atau SDK seluler native (iOS atau Android).
reCAPTCHA WAF Express hanya menggunakan sinyal backend untuk membuat skor risiko reCAPTCHA. Anda dapat menggunakan skor risiko ini untuk memutuskan apakah akan melayani permintaan, mengalihkan ke halaman tantangan, atau mencatatnya ke dalam log untuk dianalisis nanti.
Sebelum memulai
Di konsol Google Cloud, pada halaman pemilih project, pilih atau buat project Google Cloud.
Catat ID project Google Cloud Anda untuk digunakan nanti.Make sure that billing is enabled for your Google Cloud project.
Aktifkan API reCAPTCHA Enterprise.
Buat kunci API untuk autentikasi:
Di Konsol Google Cloud, buka halaman Kredensial.
Klik
Create credentials, lalu pilih API key.Catat kunci API untuk digunakan nanti.
Membuat kunci ekspres reCAPTCHA WAF
Untuk mengimplementasikan perlindungan ekspres reCAPTCHA WAF, buat kunci ekspres reCAPTCHA WAF.
Di konsol Google Cloud, aktifkan Cloud Shell.
Di bagian bawah Google Cloud Console, Cloud Shell sesi akan terbuka dan menampilkan perintah command line. Cloud Shell adalah lingkungan shell dengan Google Cloud CLI yang sudah terinstal, dan dengan nilai yang sudah ditetapkan untuk project Anda saat ini. Diperlukan waktu beberapa detik untuk melakukan inisialisasi sesi.
gcloud
Untuk membuat kunci reCAPTCHA, gunakan perintah gcloud recaptcha keys create.
Sebelum menggunakan salah satu data perintah di bawah, lakukan penggantian berikut:
- DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
- INTEGRATION_TYPE: Jenis integrasi.
Tentukan
score
. - DOMAIN_NAME: Domain atau subdomain situs yang diizinkan untuk menggunakan
kunci.
Tentukan
--allow-all-domains
. - WAF_FEATURE: Nama fitur WAF.
Tentukan
express
. - WAF_SERVICE: Nama penyedia layanan WAF.
Jalankan perintah gcloud recaptcha keys create:
Linux, macOS, atau Cloud Shell
gcloud recaptcha keys create \ --web \ --display-name=DISPLAY_NAME \ --integration-type=INTEGRATION_TYPE \ --domains=DOMAIN_NAME \ --waf-feature=WAF_FEATURE \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --web ` --display-name=DISPLAY_NAME ` --integration-type=INTEGRATION_TYPE ` --domains=DOMAIN_NAME ` --waf-feature=WAF_FEATURE ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --web ^ --display-name=DISPLAY_NAME ^ --integration-type=INTEGRATION_TYPE ^ --domains=DOMAIN_NAME ^ --waf-feature=WAF_FEATURE ^ --waf-service=WAF_SERVICE
Respons berisi kunci reCAPTCHA yang baru dibuat.
REST
Untuk informasi referensi API tentang jenis kunci dan jenis integrasi, lihat Kunci dan Jenis integrasi.Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- DISPLAY_NAME: Nama untuk kunci. Biasanya nama situs.
- INTEGRATION_TYPE: Jenis integrasi.
Tentukan
score
. - DOMAIN_NAME: Domain atau subdomain situs yang diizinkan untuk menggunakan
kunci.
Tentukan
--allow-all-domains
. - WAF_FEATURE: Nama fitur WAF.
Tentukan
express
. - WAF_SERVICE: Nama penyedia layanan WAF.
Metode HTTP dan URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Isi JSON permintaan:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "TYPE_OF_INTEGRATION" } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:curl -X POST \
-H "Authorization: Bearer $(gcloud auth print-access-token)" \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys"PowerShell
Simpan isi permintaan dalam file bernama
request.json
, dan jalankan perintah berikut:$cred = gcloud auth print-access-token
$headers = @{ "Authorization" = "Bearer $cred" }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys" | Select-Object -Expand ContentAnda akan melihat respons JSON seperti berikut:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "", "wafFeature": "EXPRESS" } }
Rekam kunci ekspres untuk digunakan di lain waktu.
Membuat penilaian
Untuk membuat permintaan dari server aplikasi Anda ke reCAPTCHA Enterprise, buat penilaian menggunakan metode projects.assessments.create
.
Sebelum menggunakan salah satu data permintaan, lakukan penggantian berikut:
- API_KEY: Kunci API yang Anda buat untuk autentikasi.
- EXPRESS_KEY: kunci reCAPTCHA WAF ekspres yang Anda buat untuk aplikasi Anda.
- USER_IP_ADDRESS: Alamat IP yang ada di permintaan dari perangkat pengguna yang terkait dengan peristiwa ini.
- HEADER_INFO: Opsional. Header HTTP yang dikirim klien ke server aplikasi Anda.
- JA3_FINGERPRINT: Opsional. JA3 adalah sidik jari MD5 dari kolom tertentu dari paket hello klien TLS. Untuk informasi selengkapnya, lihat JA3 - Metode untuk membuat profil Klien SSL/TLS.
- URI_NAME: Opsional. URI yang sedang diakses oleh pengguna.
- USER_AGENT: Opsional. Agen pengguna yang ada dalam permintaan dari perangkat pengguna yang terkait dengan peristiwa ini.
Metode HTTP dan URL:
POST https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY
Isi JSON permintaan:
{ "event": { "siteKey": "EXPRESS_KEY", "express": true, "userIpAddress": "USER_IP_ADDRESS", "headers": ["HEADER_INFO"], "ja3": "JA3_FINGERPRINT", "requestedUri": "URI_NAME", "userAgent": "USER_AGENT", } }
Untuk mengirim permintaan Anda, pilih salah satu opsi berikut:
curl
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
curl -X POST \
-H "Content-Type: application/json; charset=utf-8" \
-d @request.json \
"https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY"
PowerShell
Simpan isi permintaan dalam file bernama request.json
,
lalu jalankan perintah berikut:
$headers = @{ }
Invoke-WebRequest `
-Method POST `
-Headers $headers `
-ContentType: "application/json; charset=utf-8" `
-InFile request.json `
-Uri "https://public-preview-recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/assessments?key=API_KEY" | Select-Object -Expand Content
Anda akan melihat respons JSON yang mirip dengan berikut ini:
{ "name": "projects/123456789/assessments/abcdef1234000000", "event": { "token": "", "siteKey": "6L...", "userAgent": "Mozilla/5.0 (X11; CrOS x86_64 13816.55.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.86 Safari/537.36", "userIpAddress": "1.2.3.4", "express": true, "requestedUri": "https://example.com/", "firewallPolicyEvaluation": false }, "riskAnalysis": { "score": 0.7, "reasons": [] } }
Langkah selanjutnya
- Pelajari cara menggunakan perlindungan ekspres reCAPTCHA WAF dengan Fastly.
- Pelajari cara menafsirkan skor risiko.