Dokumen ini menunjukkan cara mengintegrasikan reCAPTCHA untuk WAF dengan Cloudflare.
Untuk menyelesaikan integrasi, Anda harus menerapkan satu atau beberapa fitur reCAPTCHA untuk WAF, membuat kebijakan firewall reCAPTCHA, dan berintegrasi dengan Cloudflare dengan men-deploy dan mengonfigurasi aplikasi serverless Cloudflare Worker.
Sebelum memulai
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
Catat Google Cloud project ID Anda untuk digunakan nanti.Make sure that billing is enabled for your Google Cloud project.
Enable the reCAPTCHA Enterprise API.
Buat kunci API untuk autentikasi:
Di konsol Google Cloud , buka halaman Credentials. - Klik Create credentials, lalu pilih API key.
- Catat kunci API untuk digunakan nanti.
Rencanakan cara Anda ingin menerapkan fitur reCAPTCHA untuk WAF guna melindungi situs Anda.
- Pilih satu atau beberapa fitur WAF yang paling sesuai dengan kasus penggunaan Anda.
- Identifikasi halaman yang ingin Anda lindungi.
- Pilih jenis fitur WAF yang ingin Anda terapkan di halaman yang diidentifikasi.
- Identifikasi kondisi untuk mengelola akses pengguna.
- Pahami komponen kebijakan firewall reCAPTCHA dan atributnya yang membantu Anda membuat kebijakan firewall reCAPTCHA. Untuk mengetahui contohnya, lihat Contoh kebijakan firewall reCAPTCHA.
Buat atau pilih akun Cloudflare dengan kemampuan Cloudflare Worker.
Buat atau pilih situs Cloudflare.
Download paket reCAPTCHA untuk Cloudflare
recaptcha_cloudflare_client_0.0.2.tar.gz
.
Menerapkan fitur reCAPTCHA untuk WAF
Bergantung pada persyaratan Anda, Anda dapat menggunakan satu atau beberapa fitur reCAPTCHA untuk WAF dalam satu aplikasi.
Jika ingin menggunakan lebih dari satu fitur, Anda harus membuat kunci reCAPTCHA untuk setiap fitur tersebut dan menggunakannya di aplikasi Anda. Misalnya, jika Anda ingin menggunakan token tindakan reCAPTCHA dan halaman tantangan reCAPTCHA, Anda harus membuat kunci token tindakan dan kunci halaman tantangan, lalu menggunakannya di aplikasi Anda.
action-token
Anda harus menjalankan reCAPTCHA di halaman web untuk membuat token tindakan.
Setelah reCAPTCHA membuat token tindakan, Anda melampirkan token tindakan ke header permintaan yang telah ditentukan sebelumnya di mana pun Anda perlu melindungi tindakan pengguna, seperti checkout
. Secara default, token tindakan berlaku selama 30 menit, tetapi dapat bervariasi bergantung pada traffic.
Anda harus melampirkan token tindakan ke header permintaan yang telah ditentukan sebelumnya sebelum token berakhir, sehingga Cloudflare dapat mengevaluasi atribut token.
Untuk menerapkan token tindakan reCAPTCHA, lakukan hal berikut:
Buat kunci token tindakan untuk situs Anda.
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
ataucheckbox
. - DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan
kunci.
Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan
--allow-all-domains
untuk menonaktifkan verifikasi domain.Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.
- WAF_FEATURE: Nama fitur WAF.
Tentukan
action-token
. - WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
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 mengetahui 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
ataucheckbox
. - DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan
kunci.
Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan
--allow-all-domains
untuk menonaktifkan verifikasi domain.Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.
- WAF_FEATURE: Nama fitur WAF.
Tentukan
action-token
. - WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
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": "cloudflare", "wafFeature": "ACTION_TOKEN" } }
Catat kunci token tindakan Anda untuk digunakan nanti.
-
Integrasikan JavaScript reCAPTCHA di halaman web Anda dengan kunci token tindakan yang Anda buat. Untuk mengetahui petunjuknya, lihat dokumen yang sesuai dengan
jenis integrasi kunci token tindakan Anda.
- Untuk jenis integrasi
SCORE
, lihat Mengintegrasikan kunci berbasis skor dengan frontend. - Untuk jenis integrasi
CHECKBOX
, lihat Merender widget reCAPTCHA di frontend.
- Untuk jenis integrasi
-
Setelah Anda menerima token dari reCAPTCHA, lampirkan token ke
header permintaan yang telah ditentukan sebelumnya dalam format berikut:
X-Recaptcha-Token: value-of-your-action-token
Anda dapat menggunakan bahasa seperti XHR, Ajax, atau Fetch API untuk melampirkan token ke header permintaan yang telah ditentukan sebelumnya.
Contoh skrip berikut menunjukkan cara melindungi tindakan
execute
dan melampirkan token ke header permintaan yang telah ditentukan menggunakan JavaScript + XHR:<script> src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_KEY"></script> <script> function onSuccess(action_token) { const xhr = new XMLHttpRequest(); xhr.open('GET','YOUR_URL', false); // Attach the action-token to the predefined request header xhr.setRequestHeader("X-Recaptcha-Token", action_token); xhr.send(null); } function onError(reason) { alert('Response promise rejected: ' + reason); grecaptcha.enterprise.ready(function () { document.getElementById("execute-button").onclick = () => { grecaptcha.enterprise.execute('ACTION_TOKEN_KEY', { }).then(onSuccess, onError); }; }); } </script>
session-token
JavaScript reCAPTCHA menetapkan token sesi reCAPTCHA sebagai cookie di browser pengguna akhir setelah penilaian. Browser pengguna akhir melampirkan cookie dan memperbarui cookie selama JavaScript reCAPTCHA tetap aktif.
Untuk memberikan token sesi sebagai cookie, instal kunci token sesi di setidaknya salah satu halaman web Anda yang dijelajahi pengguna akhir sebelum halaman yang perlu dilindungi. Misalnya, jika Anda ingin melindungi halaman checkout, instal kunci token sesi di halaman beranda atau halaman produk.
Anda dapat menyertakan JavaScript reCAPTCHA di halaman web Anda dengan mengonfigurasi file
wrangler.toml
saat menginstal paket reCAPTCHA untuk
Cloudflare atau menginstal
session-key di halaman web Anda. Menyertakan JavaScript reCAPTCHA dari Cloudflare mengintegrasikan reCAPTCHA menggunakan kunci session-token tanpa perlu menginstal kunci secara manual di halaman web Anda.
Anda dapat menggunakan cookie ini untuk melindungi permintaan dan pemuatan halaman berikutnya pengguna akhir di domain tertentu. Token sesi berlaku selama 30 menit secara default. Namun, jika pengguna akhir tetap berada di halaman tempat Anda menerapkan session-token, reCAPTCHA akan memuat ulang session-token secara berkala untuk mencegahnya berakhir.
Instal token sesi di setiap halaman yang perlu dilindungi oleh reCAPTCHA. Sebaiknya lindungi setiap halaman dengan reCAPTCHA dan gunakan aturan Google Cloud Armor untuk menerapkan akses di semua halaman, kecuali halaman pertama yang dijelajahi pengguna akhir.
Berikut adalah contoh token sesi reCAPTCHA:recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time
Untuk menerapkan token sesi reCAPTCHA, lakukan hal berikut:
- Buat kunci token sesi untuk situs Anda.
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 menggunakan
kunci.
Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan
--allow-all-domains
untuk menonaktifkan verifikasi domain.Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.
- WAF_FEATURE: Nama fitur WAF.
Tentukan
session-token
. - WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
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 mengetahui 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 menggunakan
kunci.
Tentukan beberapa domain sebagai daftar yang dipisahkan koma. Opsional: Tentukan
--allow-all-domains
untuk menonaktifkan verifikasi domain.Menonaktifkan verifikasi domain merupakan risiko keamanan karena tidak ada batasan pada situs, sehingga kunci reCAPTCHA Anda dapat diakses dan digunakan oleh siapa saja.
- WAF_FEATURE: Nama fitur WAF.
Tentukan
session-token
. - WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
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": "cloudflare", "wafFeature": "SESSION_TOKEN" } }
Catat kunci session-token Anda untuk digunakan nanti.
Jika Anda ingin menyuntikkan JavaScript reCAPTCHA dari Cloudflare, lewati langkah berikutnya dan konfigurasi
wranger.toml
. -
Tambahkan kunci session-token dan
waf=session
ke JavaScript reCAPTCHA.Skrip contoh berikut menunjukkan cara menerapkan token sesi di halaman web:
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>reCAPTCHA WAF Session Token</title> <script src="https://www.google.com/recaptcha/enterprise.js?render=SESSION_TOKEN_KEY&waf=session" async defer></script> <body></body> </head> </html>
challenge-page
Saat Anda menerapkan halaman tantangan reCAPTCHA, reCAPTCHA akan mengalihkan ke halaman antara yang menentukan apakah perlu menampilkan tantangan CAPTCHA kepada pengguna. Oleh karena itu, verifikasi CAPTCHA mungkin tidak terlihat oleh semua pengguna.
Untuk menerapkan halaman tantangan reCAPTCHA, lakukan hal berikut:
- Buat kunci halaman tantangan untuk situs Anda.
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
invisible
. - DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan
kunci.
Tentukan
--allow-all-domains
. - WAF_FEATURE: Nama fitur WAF.
Tentukan
challenge-page
. - WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
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 mengetahui 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
invisible
. - DOMAIN_NAME: Domain atau subdomain situs yang diizinkan menggunakan
kunci.
Tentukan
--allow-all-domains
. - WAF_FEATURE: Nama fitur WAF.
Tentukan
challenge-page
. - WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
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": "INVISIBLE", }, "wafSettings": { "wafService": "cloudflare", "wafFeature": "CHALLENGE_PAGE" } }
Catat kunci halaman tantangan Anda untuk digunakan nanti.
- Untuk mengalihkan pengguna ke halaman tantangan reCAPTCHA dan menerima token reCAPTCHA, buat kebijakan firewall dengan tindakan
redirect
di halaman yang dilindungi.
express
Untuk menerapkan reCAPTCHA ekspres, buat kunci ekspres.
-
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
-
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.
- WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
Jalankan perintah gcloud recaptcha keys create:
Linux, macOS, atau Cloud Shell
gcloud recaptcha keys create \ --express \ --display-name=DISPLAY_NAME \ --waf-service=WAF_SERVICE
Windows (PowerShell)
gcloud recaptcha keys create ` --express ` --display-name=DISPLAY_NAME ` --waf-service=WAF_SERVICE
Windows (cmd.exe)
gcloud recaptcha keys create ^ --express ^ --display-name=DISPLAY_NAME ^ --waf-service=WAF_SERVICE
Respons berisi kunci reCAPTCHA yang baru dibuat.
REST
Untuk mengetahui 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.
- WAF_SERVICE: Nama penyedia layanan WAF.
Tentukan
cloudflare
untuk cloudflare.
Metode HTTP dan URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
Isi JSON permintaan:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", }
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, }, "wafSettings": { "wafService": "cloudflare", } }
Catat kunci ekspres Anda untuk digunakan nanti.
Integrasi dengan Cloudflare
Untuk menggunakan kebijakan firewall reCAPTCHA, Anda harus men-deploy dan mengonfigurasi aplikasi serverless Cloudflare Worker.
Sebelum Anda memulai proses integrasi, lakukan hal berikut:
Buat CLOUDFLARE_API_TOKEN, lalu pilih template Edit Cloudflare Workers. Catat token API untuk digunakan nanti.
Dapatkan ID akun Cloudflare API Anda dan catat untuk digunakan nanti.
Menginstal paket reCAPTCHA untuk Cloudflare
Download dan instal paket reCAPTCHA untuk Cloudflare:
In the Google Cloud console, activate Cloud Shell.
At the bottom of the Google Cloud console, a Cloud Shell session starts and displays a command-line prompt. Cloud Shell is a shell environment with the Google Cloud CLI already installed and with values already set for your current project. It can take a few seconds for the session to initialize.
Instal paket wrangler:
npm install -g wrangler
Download paket reCAPTCHA untuk Cloudflare:
wget --load-cookies /tmp/cookies.txt https://dl.google.com/recaptchaenterprise/cloudflare_client/releases/recaptcha_cloudflare_client_0.0.2.tar.gz -O recaptcha_cloudflare_client_0.0.2.tar.gz && rm -rf /tmp/cookies.txt
Bongkar paket reCAPTCHA untuk Cloudflare:
tar -xvzf recaptcha_cloudflare_client_0.0.2.tar.gz
Dalam file
wrangler.toml
, konfigurasi variabel berikut di bagian vars:- API_KEY: Google Cloud Kunci API yang Anda buat untuk autentikasi.
- PROJECT_NUMBER: nomor project Google Cloud Anda.
- RECAPTCHA_EXPRESS_SITE_KEY: kunci cepat jika Anda menggunakan reCAPTCHA Express.
- RECAPTCHA_SESSION_SITE_KEY: kunci session-token jika Anda menggunakan session-token reCAPTCHA.
- RECAPTCHA_ACTION_SITE_KEY: kunci token tindakan jika Anda menggunakan token tindakan reCAPTCHA.
- RECAPTCHA_CHALLENGE_SITE_KEY: kunci halaman tantangan jika Anda menggunakan halaman tantangan reCAPTCHA.
- RECAPTCHA_JS_INSTALL_PATH: URL halaman tempat Anda ingin
Cloudflare Worker menginstal
JavaScript reCAPTCHA menggunakan kunci token sesi. Tentukan
jalur sebagai pola glob
dan gunakan
;
sebagai pembatas. Opsi ini hanya tersedia untuk token sesi reCAPTCHA.
Deploy aplikasi:
wrangler deploy
Mengonfigurasi rute Cloudflare ke aplikasi Worker
- Login ke dasbor Cloudflare dan pilih akun Anda.
- Di menu navigasi, klik Pekerja & Halaman, lalu pilih aplikasi Pekerja Anda.
- Klik tab Pemicu, lalu klik Tambahkan rute.
- Pada dialog Add route, masukkan jalur halaman web Anda yang perlu dilindungi oleh reCAPTCHA, pilih zona yang sesuai, lalu klik Add route.