במאמר הזה מוסבר איך לשלב את reCAPTCHA עם Cloud Armor באתרים.
כדי להשלים את השילוב, צריך להטמיע תכונה אחת או יותר של reCAPTCHA for Cloud Armor ולהגדיר כללי מדיניות אבטחה של Cloud Armor.
לפני שמתחילים
מפעילים את reCAPTCHA Enterprise API.
תפקידים שנדרשים להפעלת ממשקי API
כדי להפעיל ממשקי API, צריך את תפקיד ה-IAM 'אדמין של Service Usage' (
roles/serviceusage.serviceUsageAdmin), שכולל את ההרשאהserviceusage.services.enable. איך מקצים תפקידיםתכננו איך אתם רוצים להטמיע את התכונות של reCAPTCHA for Cloud Armor כדי להגן על האתר שלכם.
- בוחרים תכונה אחת או יותר של WAF שמתאימה לתרחיש השימוש שלכם.
- מזהים את הדפים שרוצים להגן עליהם ואת סוג התכונה של Cloud Armor שרוצים להטמיע בדפים האלה.
הטמעה של תכונות reCAPTCHA ב-Cloud Armor
בהתאם לדרישות שלכם, אתם יכולים להשתמש בתכונה אחת או יותר של reCAPTCHA for Cloud Armor באפליקציה אחת.
אם רוצים להשתמש ביותר מתכונה אחת, צריך ליצור מפתח reCAPTCHA לכל אחת מהתכונות האלה ולהשתמש בהן באפליקציה. לדוגמה, אם רוצים להשתמש בטוקנים של פעולות reCAPTCHA ובדף אתגר reCAPTCHA, צריך ליצור מפתח של טוקן פעולה ומפתח של דף אתגר, ולהשתמש בהם באפליקציה.
הטמעה של טוקנים של פעולות reCAPTCHA
כדי ליצור טוקנים של פעולות, צריך להפעיל את reCAPTCHA בדפי האינטרנט.
אחרי שמערכת reCAPTCHA יוצרת טוקן פעולה, אתם מצרפים אותו לכותרת בקשה מוגדרת מראש בכל מקום שבו אתם צריכים להגן על פעולת משתמש, כמו checkout. כברירת מחדל, תוקף האסימונים לפעולות הוא 30 דקות, אבל הוא עשוי להשתנות בהתאם לתנועה.
כדי ש-Cloud Armor יוכל להעריך את מאפייני הטוקן, צריך לצרף את טוקן הפעולה לכותרת בקשה מוגדרת מראש לפני שהתוקף של הטוקן יפוג.
כדי להטמיע טוקן פעולה של reCAPTCHA, מבצעים את הפעולות הבאות:
יוצרים מפתח של טוקן פעולה לאתר.
מסוף Cloud
נכנסים לדף reCAPTCHA במסוף Google Cloud .
מוודאים ששם הפרויקט מופיע בבורר המשאבים בחלק העליון של הדף.
אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.
- לוחצים על Create key.
- בשדה שם לתצוגה, מזינים שם לתצוגה של המפתח.
- בהתאם לפלטפורמה שעבורה רוצים ליצור מפתחות reCAPTCHA ל-WAF, מבצעים את הפעולה המתאימה:
- ב-Application type בוחרים באפשרות Web.
יופיע הקטע Domain list (רשימת הדומיינים).
-
כדי להגן על מפתח ה-reCAPTCHA של הדומיין ותת-הדומיינים, מוודאים שהמתג השבתת אימות הדומיין מושבת.
השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
-
מזינים את שם הדומיין של האתר:
- בקטע רשימת הדומיינים, לוחצים על הוספת דומיין.
- בשדה דומיין, מזינים את שם הדומיין.
אופציונלי: כדי להוסיף עוד דומיין, לוחצים על הוספת דומיין ומזינים את השם של דומיין נוסף בשדה דומיין. אפשר להוסיף עד 250 דומיינים.
באתרים, מפתח ה-reCAPTCHA הוא ייחודי לדומיינים ולתתי-הדומיינים שאתם מציינים. אפשר לציין יותר מדומיין אחד אם האתר שלכם מוגש מכמה דומיינים. אם מציינים דומיין (לדוגמה,
examplepetstore.com), לא צריך לציין את תת-הדומיינים שלו (לדוגמה,subdomain.examplepetstore.com).
- בהגדרות נוספות, מפעילים את המתג האם תפרוס את המפתח הזה בחומת אש של אפליקציית אינטרנט (WAF)?.
באפשרויות של תכונה, בוחרים באפשרות פעולה.
-
אופציונלי: מפעילים את המתג האם תשתמש באתגרים?.
- לוחצים על Create key.
המפתח החדש שנוצר מופיע בדף מפתחות reCAPTCHA.
gcloud
כדי ליצור מפתחות reCAPTCHA, משתמשים בפקודה gcloud recaptcha keys create.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- INTEGRATION_TYPE: סוג השילוב.
מציינים
scoreאוcheckbox. - DISPLAY_NAME: שם המפתח. בדרך כלל שם האתר.
- DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח.
אפשר לציין כמה דומיינים כרשימה שמופרדת באמצעות פסיקים. אופציונלי: מציינים
--allow-all-domainsכדי להשבית את אימות הדומיין.השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
- WAF_FEATURE: השם של התכונה ב-WAF.
מציינים את
action-token. - WAF_SERVICE: השם של ספק שירותי ה-WAF.
מציינים את
CAל-Cloud Armor.
מריצים את הפקודה gcloud recaptcha keys create:
Linux, macOS או 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
התשובה מכילה את מפתח reCAPTCHA החדש שנוצר.
REST
למידע על סוגי מפתחות וסוגי שילובים, אפשר לעיין במאמרים בנושא מפתח וסוג שילוב.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- INTEGRATION_TYPE: סוג השילוב.
מציינים
scoreאוcheckbox. - DISPLAY_NAME: שם המפתח. בדרך כלל שם האתר.
- DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח.
אפשר לציין כמה דומיינים כרשימה שמופרדת באמצעות פסיקים. אופציונלי: מציינים
--allow-all-domainsכדי להשבית את אימות הדומיין.השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
- WAF_FEATURE: השם של התכונה ב-WAF.
מציינים את
action-token. - WAF_SERVICE: השם של ספק שירותי ה-WAF.
מציינים את
CAל-Cloud Armor. - DEFAULT_SCORE_THRESHOLD: במקרה של מפתחות אתגרים שמבוססים על מדיניות, ההגדרה הזו מגדירה את סף האתגר האוניברסלי למפתח כשלא מוגדר סף ניקוד בהתאמה אישית. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
- ACTION_SCORE_THRESHOLDS: במקרה של מפתחות לאתגרים שמבוססים על מדיניות, כאן מציינים את הפעולה ואת ערך הסף התואם בין 0.0 ל-1.0. לדוגמה,
login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
ה-method של ה-HTTP וכתובת ה-URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
גוף בקשת JSON:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "INTEGRATION_TYPE" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה: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
שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:$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 Contentאתם אמורים לקבל תגובת JSON שדומה לזו:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "CA", "wafFeature": "ACTION_TOKEN" } }משלבים JavaScript של reCAPTCHA בדפי האינטרנט עם מפתח טוקן הפעולה שיצרתם. הוראות מופיעות במסמך שמתאים לסוג השילוב של מפתח טוקן הפעולה.
- לגבי סוג השילוב
SCORE, אפשר לעיין במאמר בנושא שילוב של מפתחות מבוססי-ניקוד עם חזית האתר. - לגבי סוג השילוב
CHECKBOX, אפשר לעיין במאמר בנושא הצגת הווידג'ט של reCAPTCHA בחלק הקדמי של האתר.
- לגבי סוג השילוב
אחרי שמקבלים את הטוקן מ-reCAPTCHA, מצרפים אותו לכותרת בקשה מוגדרת מראש בפורמט הבא:
X-Recaptcha-Token: value-of-your-action-token
אפשר להשתמש בשפות כמו XHR, Ajax או Fetch API כדי לצרף את האסימון לכותרת בקשה מוגדרת מראש.
בסקריפט לדוגמה הבא אפשר לראות איך להגן על הפעולה
executeולצרף את האסימון לכותרת בקשה מוגדרת מראש באמצעות 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>
הטמעה של טוקנים של סשן reCAPTCHA
סקריפט ה-JavaScript של reCAPTCHA מגדיר אסימון סשן של reCAPTCHA כקובץ Cookie בדפדפן של משתמש הקצה אחרי הבדיקה. הדפדפן של משתמש הקצה מצרף את קובץ ה-cookie ומרענן אותו כל עוד ה-JavaScript של reCAPTCHA נשאר פעיל.
כדי לספק אסימון סשן כקובץ Cookie, צריך להתקין מפתח אסימון סשן לפחות באחד מדפי האינטרנט שהמשתמשים גולשים בהם לפני הדף שצריך להגן עליו. לדוגמה, אם רוצים להגן על דף התשלום, צריך להתקין מפתח של טוקן סשן בדף הבית או בדף המוצר.
במאמר שילוב מפתחות מבוססי-ניקוד עם קצה קדמי מוסבר איך להתקין מפתחות של טוקנים לסשנים בדפי אינטרנט.
אפשר להשתמש בקובץ ה-Cookie הזה כדי להגן על בקשות עתידיות של משתמש הקצה ועל טעינות של דפים בדומיין ספציפי. אסימוני סשן תקפים למשך 30 דקות כברירת מחדל. עם זאת, אם משתמש הקצה נשאר בדף שבו הטמעתם את טוקן הסשן, מערכת reCAPTCHA מרעננת את טוקן הסשן מעת לעת כדי למנוע את תפוגת התוקף שלו.
צריך להתקין טוקנים של סשנים בכל דף שצריך להגן עליו באמצעות reCAPTCHA. מומלץ להגן על כל דף באמצעות reCAPTCHA ולהשתמש בכללים של Cloud Armor כדי לאכוף גישה לכל הדפים, למעט הדף הראשון שמשתמשי הקצה גולשים בו.
הנה דוגמה לטוקן של סשן reCAPTCHA:recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time
כדי להטמיע אסימון סשן של reCAPTCHA, מבצעים את הפעולות הבאות:
יוצרים מפתח של טוקן סשן לאתר.
מסוף Cloud
נכנסים לדף reCAPTCHA במסוף Google Cloud .
מוודאים ששם הפרויקט מופיע בבורר המשאבים בחלק העליון של הדף.
אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.
- לוחצים על Create key.
- בשדה שם לתצוגה, מזינים שם לתצוגה של המפתח.
- בהתאם לפלטפורמה שעבורה רוצים ליצור מפתחות reCAPTCHA ל-WAF, מבצעים את הפעולה המתאימה:
- ב-Application type בוחרים באפשרות Web.
יופיע הקטע Domain list (רשימת הדומיינים).
-
כדי להגן על מפתח ה-reCAPTCHA של הדומיין ותת-הדומיינים, מוודאים שהמתג השבתת אימות הדומיין מושבת.
השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
-
מזינים את שם הדומיין של האתר:
- בקטע רשימת הדומיינים, לוחצים על הוספת דומיין.
- בשדה דומיין, מזינים את שם הדומיין.
אופציונלי: כדי להוסיף עוד דומיין, לוחצים על הוספת דומיין ומזינים את השם של דומיין נוסף בשדה דומיין. אפשר להוסיף עד 250 דומיינים.
באתרים, מפתח ה-reCAPTCHA הוא ייחודי לדומיינים ולתתי-הדומיינים שאתם מציינים. אפשר לציין יותר מדומיין אחד אם האתר שלכם מוגש מכמה דומיינים. אם מציינים דומיין (לדוגמה,
examplepetstore.com), לא צריך לציין את תת-הדומיינים שלו (לדוגמה,subdomain.examplepetstore.com).
- בהגדרות נוספות, מפעילים את המתג האם תפרוס את המפתח הזה בחומת אש של אפליקציית אינטרנט (WAF)?.
באפשרויות של תכונה, בוחרים באפשרות סשן.
- אופציונלי:מפעילים את האפשרות השבתת אימות הדומיין.
השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
- לוחצים על Create key.
המפתח החדש שנוצר מופיע בדף מפתחות reCAPTCHA.
gcloud
כדי ליצור מפתחות reCAPTCHA, משתמשים בפקודה gcloud recaptcha keys create.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- INTEGRATION_TYPE: סוג השילוב.
מציינים את
score. - DISPLAY_NAME: שם המפתח. בדרך כלל שם האתר.
- DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח.
אפשר לציין כמה דומיינים כרשימה שמופרדת באמצעות פסיקים. אופציונלי: מציינים
--allow-all-domainsכדי להשבית את אימות הדומיין.השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
- WAF_FEATURE: השם של התכונה ב-WAF.
מציינים את
session-token. - WAF_SERVICE: השם של ספק שירותי ה-WAF.
מציינים את
CAל-Cloud Armor.
מריצים את הפקודה gcloud recaptcha keys create:
Linux, macOS או 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
התשובה מכילה את מפתח reCAPTCHA החדש שנוצר.
REST
למידע על סוגי מפתחות וסוגי שילובים, אפשר לעיין במאמרים בנושא מפתח וסוג שילוב.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- INTEGRATION_TYPE: סוג השילוב.
מציינים את
score. - DISPLAY_NAME: שם המפתח. בדרך כלל שם האתר.
- DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח.
אפשר לציין כמה דומיינים כרשימה שמופרדת באמצעות פסיקים. אופציונלי: מציינים
--allow-all-domainsכדי להשבית את אימות הדומיין.השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות באתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.
- WAF_FEATURE: השם של התכונה ב-WAF.
מציינים את
session-token. - WAF_SERVICE: השם של ספק שירותי ה-WAF.
מציינים את
CAל-Cloud Armor. - DEFAULT_SCORE_THRESHOLD: במקרה של מפתחות אתגרים שמבוססים על מדיניות, ההגדרה הזו מגדירה את סף האתגר האוניברסלי למפתח כשלא מוגדר סף ניקוד בהתאמה אישית. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
- ACTION_SCORE_THRESHOLDS: במקרה של מפתחות אתגר שמבוססים על מדיניות, כאן מציינים את הפעולה ואת ציון הסף התואם בין 0.0 ל-1.0. לדוגמה,
login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
ה-method של ה-HTTP וכתובת ה-URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
גוף בקשת JSON:
{ "displayName": "DISPLAY_NAME", 'wafSettings': " { "wafService": "WAF_SERVICE", "wafFeature": "WAF_FEATURE" } "webSettings": { "allowedDomains": "DOMAINS", "integrationType": "INTEGRATION_TYPE" } }כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה: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
שומרים את גוף הבקשה בקובץ בשם
request.jsonומריצים את הפקודה הבאה:$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 Contentאתם אמורים לקבל תגובת JSON שדומה לזו:
{ "name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m", "displayName": "DISPLAY_NAME, "webSettings": { "allowAllDomains": true, "allowedDomains": [ "localhost" ], "integrationType": "SCORE", }, "wafSettings": { "wafService": "CA", "wafFeature": "SESSION_TOKEN" } }מוסיפים את המפתח session-token ואת
waf=sessionל-JavaScript של reCAPTCHA.בסקריפט לדוגמה הבא אפשר לראות איך מטמיעים אסימון סשן בדף אינטרנט:
<!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>
הטמעה של דף מבחן reCAPTCHA
כשמטמיעים דף עם אתגר reCAPTCHA, המערכת של reCAPTCHA מבצעת הפניה לדף ביניים שבו היא קובעת אם צריך להציג למשתמש אתגר CAPTCHA. לכן, יכול להיות שאתגרי CAPTCHA לא יוצגו לכל המשתמשים.
כדי להטמיע דף עם מבחן reCAPTCHA, צריך ליצור מפתח לדף עם מבחן לאתר.
מסוף Cloud
נכנסים לדף reCAPTCHA במסוף Google Cloud .
מוודאים ששם הפרויקט מופיע בבורר המשאבים בחלק העליון של הדף.
אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.
- לוחצים על Create key.
- בשדה שם לתצוגה, מזינים שם לתצוגה של המפתח.
- בהתאם לפלטפורמה שעבורה רוצים ליצור מפתחות reCAPTCHA ל-WAF, מבצעים את הפעולה המתאימה:
- ב-Application type בוחרים באפשרות Web.
- בהגדרות נוספות, מפעילים את המתג האם תפרוס את המפתח הזה בחומת אש של אפליקציית אינטרנט (WAF)?.
באפשרויות התכונה, בוחרים באפשרות אתגר.
- מפעילים את האפשרות השבתת אימות הדומיין.
כשמשביתים את אימות הדומיין למפתחות של דפי אתגר, Cloud Armor מאמת את הדומיין.
- לוחצים על Create key.
המפתח החדש שנוצר מופיע בדף מפתחות reCAPTCHA.
gcloud
כדי ליצור מפתחות reCAPTCHA, משתמשים בפקודה gcloud recaptcha keys create.
לפני השימוש בנתוני הפקודה הבאים, צריך להחליף את הנתונים הבאים:
- INTEGRATION_TYPE: סוג השילוב.
מציינים את
invisible. - DISPLAY_NAME: שם המפתח. בדרך כלל שם האתר.
- DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח.
מציינים את
--allow-all-domains. - WAF_FEATURE: השם של התכונה ב-WAF.
מציינים את
challenge-page. - WAF_SERVICE: השם של ספק שירותי ה-WAF.
מציינים את
CAל-Cloud Armor.
מריצים את הפקודה gcloud recaptcha keys create:
Linux, macOS או 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
התשובה מכילה את מפתח reCAPTCHA החדש שנוצר.
REST
למידע על סוגי מפתחות וסוגי שילובים, אפשר לעיין במאמרים בנושא מפתח וסוג שילוב.לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:
- INTEGRATION_TYPE: סוג השילוב.
מציינים את
invisible. - DISPLAY_NAME: שם המפתח. בדרך כלל שם האתר.
- DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח.
מציינים את
--allow-all-domains. - WAF_FEATURE: השם של התכונה ב-WAF.
מציינים את
challenge-page. - WAF_SERVICE: השם של ספק שירותי ה-WAF.
מציינים את
CAל-Cloud Armor. - DEFAULT_SCORE_THRESHOLD: במקרה של מפתחות אתגרים שמבוססים על מדיניות, ההגדרה הזו מגדירה את סף האתגר האוניברסלי למפתח כשלא מוגדר סף ניקוד בהתאמה אישית. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
- ACTION_SCORE_THRESHOLDS: במקרה של מפתחות אתגר שמבוססים על מדיניות, כאן מציינים את הפעולה ואת ציון הסף התואם בין 0.0 ל-1.0. לדוגמה,
login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
ה-method של ה-HTTP וכתובת ה-URL:
POST https://recaptchaenterprise.googleapis.com/v1/projects/PROJECT_ID/keys
גוף בקשת JSON:
{
"displayName": "DISPLAY_NAME",
'wafSettings': " {
"wafService": "WAF_SERVICE",
"wafFeature": "WAF_FEATURE"
}
"webSettings": {
"allowedDomains": "DOMAINS",
"integrationType": "INTEGRATION_TYPE"
}
}
כדי לשלוח את הבקשה עליכם לבחור אחת מהאפשרויות הבאות:
curl
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
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
שומרים את גוף הבקשה בקובץ בשם request.json ומריצים את הפקודה הבאה:
$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 Content
אתם אמורים לקבל תגובת JSON שדומה לזו:
{
"name": "projects/project-id/keys/7Ldqgs0UBBBBBIn4k7YxEB-LwEh5S9-Gv6QQIWB8m",
"displayName": "DISPLAY_NAME,
"webSettings": {
"allowAllDomains": true,
"allowedDomains": [
"localhost"
],
"integrationType": "INVISIBLE",
},
"wafSettings": {
"wafService": "CA",
"wafFeature": "CHALLENGE_PAGE"
}
}
הגדרת כללי מדיניות האבטחה של Cloud Armor
אחרי שמטמיעים את התכונות של reCAPTCHA for Cloud Armor, צריך להגדיר את כללי מדיניות האבטחה של Cloud Armor לניהול בוטים.
אם הטמעתם דף אתגר reCAPTCHA, אתם צריכים לבצע את הפעולות הבאות:
- משייכים את המפתח של דף האתגר למדיניות האבטחה.
- הגדרת כלל במדיניות אבטחה להפניה של בקשה להערכה של reCAPTCHA.
אם הטמעתם טוקנים של פעולות או טוקנים של סשנים מסוג reCAPTCHA, אתם צריכים להגדיר כלל של מדיניות אבטחה שבודק טוקנים של reCAPTCHA.
לפני שמגדירים את כללי מדיניות האבטחה של Cloud Armor, חשוב להבין את מאפייני אסימון reCAPTCHA ב-Cloud Armor.
כדי ללמוד איך להגדיר כללי מדיניות אבטחה של Cloud Armor ולהשתמש במפתחות reCAPTCHA ל-WAF עם כללי מדיניות האבטחה, אפשר לעיין במאמר בנושא הגדרת כללים לניהול בוטים.
קבלת תוצאות reCAPTCHA
במקרה של טוקנים של פעולות וטוקנים של סשנים ב-reCAPTCHA, אפשר לקבל את הניקוד של reCAPTCHA מהכותרת X-Recaptcha-Wafdata.
על סמך הניקוד הזה, אתם יכולים להגדיר כל פעולה בהתאמה אישית שצריך לבצע לבקשות של משתמשים.
בדוגמה הבאה מוצגת כותרת לדוגמה של X-Recaptcha-Wafdata:
X-Recaptcha-Wafdata: waf_service="Google Cloud Armor", action_token;score=0.9, session_token;score=0.8\r\n
אפשר גם לראות את הציונים של reCAPTCHA ביומנים של Google Cloud Armor.