שילוב עם Google Cloud Armor לאתרים

במאמר הזה מוסבר איך להטמיע את reCAPTCHA ב-Cloud Armor באתרים.

כדי להשלים את השילוב, צריך להטמיע תכונה אחת או יותר של reCAPTCHA ל-Cloud Armor ולהגדיר את כללי האבטחה של Cloud Armor.

לפני שמתחילים

  1. מפעילים את reCAPTCHA Enterprise API.

    תפקידים שנדרשים להפעלת ממשקי API

    כדי להפעיל ממשקי API, צריך את ההרשאה serviceusage.services.enable. אם יצרתם את הפרויקט, סביר להניח שכבר יש לכם את ההרשאה הזו דרך התפקיד 'בעלים' (roles/owner). אחרת, תוכלו לקבל את ההרשאה הזו דרך התפקיד 'אדמין בממשק Service Usage' (roles/serviceusage.serviceUsageAdmin). איך מקצים תפקידים

    להפעלת ה-API

  2. תכננו איך אתם רוצים להטמיע את התכונות של reCAPTCHA ב-Cloud Armor כדי להגן על האתר שלכם.

    1. בוחרים תכונה אחת או יותר של WAF שמתאימה הכי טוב לתרחיש לדוגמה שלכם.
    2. מזהים את הדפים שרוצים להגן עליהם ואת סוג התכונה של Cloud Armor שרוצים להטמיע בדפים האלה.

הטמעה של תכונות reCAPTCHA ב-Cloud Armor

בהתאם לדרישות שלכם, אתם יכולים להשתמש בתכונה אחת או יותר של reCAPTCHA for Cloud Armor באפליקציה אחת.

אם רוצים להשתמש ביותר מתכונה אחת, צריך ליצור מפתח reCAPTCHA לכל אחת מהתכונות האלה ולהשתמש בהן באפליקציה. לדוגמה, אם רוצים להשתמש בטוקנים של פעולות reCAPTCHA ובדף אתגר reCAPTCHA, צריך ליצור מפתח לטוקנים של פעולות ומפתח לדף אתגר, ולהשתמש בהם באפליקציה.

הטמעה של טוקנים של פעולות reCAPTCHA

כדי ליצור טוקנים של פעולות, צריך להפעיל את reCAPTCHA בדפי האינטרנט. אחרי ש-reCAPTCHA יוצר טוקן פעולה, צריך לצרף אותו לכותרת בקשה מוגדרת מראש בכל מקום שבו רוצים להגן על פעולת משתמש, כמו checkout. כברירת מחדל, תוקף האסימונים לפעולות הוא 30 דקות, אבל הוא עשוי להשתנות בהתאם לתנועה. כדי ש-Cloud Armor יוכל להעריך את מאפייני האסימון, צריך לצרף את אסימון הפעולה לכותרת בקשה מוגדרת מראש לפני שהתוקף של האסימון יפוג.

כדי להטמיע טוקן פעולה של reCAPTCHA:

  1. יוצרים מפתח של טוקן פעולה לאתר.

    מסוף Cloud

    1. נכנסים לדף Google Cloud Fraud Defense במסוף Google Cloud .

      כניסה אל Google Cloud Fraud Defense

    2. מוודאים ששם הפרויקט מופיע בבורר המשאבים בחלק העליון של הדף.

      אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.

    3. לוחצים על הכרטיסייה Keys.
    4. לוחצים על Create key.
    5. בשדה שם לתצוגה, מזינים שם לתצוגה של המפתח.
    6. בהתאם לפלטפורמה שעבורה רוצים ליצור מפתחות reCAPTCHA ל-WAF, מבצעים את הפעולה המתאימה:
      1. ב-Application type בוחרים באפשרות Web.

        מופיע הקטע Domain list (רשימת הדומיינים).

      2. כדי להגן על מפתח ה-reCAPTCHA של הדומיין ותת-הדומיינים, מוודאים שהמתג השבתת אימות הדומיין מושבת.

        השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות על האתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.

      3. מזינים את שם הדומיין של האתר:

        1. בקטע רשימת הדומיינים, לוחצים על הוספת דומיין.
        2. בשדה דומיין, מזינים את שם הדומיין.
        3. אופציונלי: כדי להוסיף עוד דומיין, לוחצים על הוספת דומיין ומזינים את השם של דומיין נוסף בשדה דומיין. אפשר להוסיף עד 250 דומיינים.

          באתרים, מפתח reCAPTCHA הוא ייחודי לדומיינים ולתתי-הדומיינים שאתם מציינים. אפשר לציין יותר מדומיין אחד אם האתר שלכם מוגש מכמה דומיינים. אם מציינים דומיין (לדוגמה, examplepetstore.com), לא צריך לציין את תת-הדומיינים שלו (לדוגמה, subdomain.examplepetstore.com). יכול להיות שיחלפו עד 30 דקות עד שהשינויים ברשימת הדומיינים ייכנסו לתוקף.

      4. בהגדרות נוספות, מפעילים את המתג האם תפרסו את המפתח הזה בחומת אש של אפליקציית אינטרנט (WAF)?.
      5. באפשרויות של תכונה, בוחרים באפשרות פעולה.

      6. אופציונלי: מפעילים את המתג האם תשתמש באתגרים?.

      7. לוחצים על Create key.
      8. המפתח החדש שנוצר מופיע בדף מפתחות 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

    למידע על סוגי מפתחות וסוגי שילובים, אפשר לעיין במאמרי העזרה של ה-API בנושא מפתח וסוג שילוב.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫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: במקרה של מפתחות אתגר שמבוססים על מדיניות, הערך הזה מגדיר את סף האתגר האוניברסלי למפתח כשלא מוגדר סף מותאם אישית. התכונה הזו נמצאת בתצוגה מקדימה.
    • ‫ACTION_SCORE_THRESHOLDS: במקרה של מפתחות אתגר שמבוססים על מדיניות, כאן מציינים את הפעולה ואת ערך הסף התואם בין 0.0 ל-1.0. לדוגמה, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. התכונה הזו נמצאת בתצוגה מקדימה.

    ה-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"
      
    
    }
    }
    
    

  2. משלבים JavaScript של reCAPTCHA בדפי האינטרנט עם מפתח טוקן הפעולה שיצרתם. הוראות מופיעות במסמך שמתאים לסוג השילוב של מפתח טוקן הפעולה.

  3. אחרי שמקבלים את הטוקן מ-reCAPTCHA, מצרפים את הטוקן ל-request header מוגדר מראש בפורמט הבא:

     X-Recaptcha-Token: value-of-your-action-token
    

    אפשר להשתמש בשפות כמו XHR,‏ Ajax או Fetch API כדי לצרף את האסימון לכותרת request header מוגדרת מראש.

    בסקריפט לדוגמה הבא אפשר לראות איך להגן על הפעולה 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 בדפדפן של משתמש הקצה אחרי הקריאה ל-execute(). הדפדפן של משתמש הקצה מצרף את קובץ ה-Cookie ומרענן אותו כל עוד ה-JavaScript של reCAPTCHA פעיל.

כדי לספק אסימון סשן כקובץ Cookie, צריך להתקין מפתח אסימון סשן לפחות באחד מדפי האינטרנט שהמשתמשים גולשים בהם לפני הדף שצריך להגן עליו. לדוגמה, אם רוצים להגן על דף התשלום, צריך להתקין מפתח של טוקן סשן בדף הבית או בדף המוצר.

במאמר שילוב מפתחות מבוססי-ניקוד עם קצה קדמי מוסבר איך להתקין מפתחות של טוקנים לסשנים בדפי אינטרנט.

אפשר להשתמש בקובץ ה-Cookie הזה כדי להגן על בקשות עתידיות של משתמש הקצה ועל טעינות של דפים בדומיין ספציפי. אסימוני סשן תקפים למשך 30 דקות כברירת מחדל. עם זאת, אם משתמש הקצה נשאר בדף שבו הטמעתם את session-token,‏ reCAPTCHA מרענן את session-token מעת לעת כדי למנוע את פקיעת התוקף שלו.

מתקינים טוקנים של סשנים בכל דף שצריך להגן עליו באמצעות reCAPTCHA. מומלץ להגן על כל דף באמצעות reCAPTCHA ולהשתמש בכללים של Cloud Armor כדי לאכוף גישה לכל הדפים, למעט הדף הראשון שמשתמשי הקצה גולשים בו.

הנה דוגמה לטוקן של סשן reCAPTCHA:
   recaptcha-ca-t=value-of-your-session-token;domain=domain;expires=expiration_time

כדי להטמיע אסימון סשן של reCAPTCHA, מבצעים את הפעולות הבאות:

  1. יוצרים מפתח של טוקן סשן לאתר.

    מסוף Cloud

    1. נכנסים לדף Google Cloud Fraud Defense במסוף Google Cloud .

      כניסה אל Google Cloud Fraud Defense

    2. מוודאים ששם הפרויקט מופיע בבורר המשאבים בחלק העליון של הדף.

      אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.

    3. לוחצים על הכרטיסייה Keys.
    4. לוחצים על Create key.
    5. בשדה שם לתצוגה, מזינים שם לתצוגה של המפתח.
    6. בהתאם לפלטפורמה שעבורה רוצים ליצור מפתחות reCAPTCHA ל-WAF, מבצעים את הפעולה המתאימה:
      1. ב-Application type בוחרים באפשרות Web.

        מופיע הקטע Domain list (רשימת הדומיינים).

      2. כדי להגן על מפתח ה-reCAPTCHA של הדומיין ותת-הדומיינים, מוודאים שהמתג השבתת אימות הדומיין מושבת.

        השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות על האתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.

      3. מזינים את שם הדומיין של האתר:

        1. בקטע רשימת הדומיינים, לוחצים על הוספת דומיין.
        2. בשדה דומיין, מזינים את שם הדומיין.
        3. אופציונלי: כדי להוסיף עוד דומיין, לוחצים על הוספת דומיין ומזינים את השם של דומיין נוסף בשדה דומיין. אפשר להוסיף עד 250 דומיינים.

          באתרים, מפתח reCAPTCHA הוא ייחודי לדומיינים ולתתי-הדומיינים שאתם מציינים. אפשר לציין יותר מדומיין אחד אם האתר שלכם מוגש מכמה דומיינים. אם מציינים דומיין (לדוגמה, examplepetstore.com), לא צריך לציין את תת-הדומיינים שלו (לדוגמה, subdomain.examplepetstore.com). יכול להיות שיחלפו עד 30 דקות עד שהשינויים ברשימת הדומיינים ייכנסו לתוקף.

      4. בהגדרות נוספות, מפעילים את המתג האם תפרסו את המפתח הזה בחומת אש של אפליקציית אינטרנט (WAF)?.
      5. באפשרויות של תכונה, בוחרים באפשרות סשן.

      6. אופציונלי:מפעילים את האפשרות השבתת אימות הדומיין.

        השבתת אימות הדומיין היא סיכון אבטחה כי אין הגבלות על האתר, ולכן כל אחד יכול לגשת למפתח reCAPTCHA ולהשתמש בו.

      7. לוחצים על Create key.
      8. המפתח החדש שנוצר מופיע בדף מפתחות 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

    למידע על סוגי מפתחות וסוגי שילובים, אפשר לעיין במאמרי העזרה של ה-API בנושא מפתח וסוג שילוב.

    לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

    • ‫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: במקרה של מפתחות אתגר שמבוססים על מדיניות, הערך הזה מגדיר את סף האתגר האוניברסלי למפתח כשלא מוגדר סף מותאם אישית. התכונה הזו נמצאת בתצוגה מקדימה.
    • ‫ACTION_SCORE_THRESHOLDS: במקרה של מפתחות אתגר שמבוססים על מדיניות, כאן מציינים את הפעולה ואת ערך הסף התואם בין 0.0 ל-1.0. לדוגמה, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. התכונה הזו נמצאת בתצוגה מקדימה.

    ה-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"
    
    
    }
    }
    
    

  2. מוסיפים את המפתח 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

  1. נכנסים לדף Google Cloud Fraud Defense במסוף Google Cloud .

    כניסה אל Google Cloud Fraud Defense

  2. מוודאים ששם הפרויקט מופיע בבורר המשאבים בחלק העליון של הדף.

    אם שם הפרויקט לא מופיע, לוחצים על בורר המשאבים ובוחרים את הפרויקט.

  3. לוחצים על הכרטיסייה Keys.
  4. לוחצים על Create key.
  5. בשדה שם לתצוגה, מזינים שם לתצוגה של המפתח.
  6. בהתאם לפלטפורמה שעבורה רוצים ליצור מפתחות reCAPTCHA ל-WAF, מבצעים את הפעולה המתאימה:
    1. ב-Application type בוחרים באפשרות Web.
    2. בהגדרות נוספות, מפעילים את המתג האם תפרסו את המפתח הזה בחומת אש של אפליקציית אינטרנט (WAF)?.
    3. באפשרויות התכונה, בוחרים באפשרות אתגר.

    4. מפעילים את האפשרות השבתת אימות הדומיין.

      כשמשביתים את אימות הדומיין למפתחות של דף אימות, Cloud Armor מאמת את הדומיין.

    5. לוחצים על Create key.
    6. המפתח החדש שנוצר מופיע בדף מפתחות 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

למידע על סוגי מפתחות וסוגי שילובים, אפשר לעיין במאמרי העזרה של ה-API בנושא מפתח וסוג שילוב.

לפני שמשתמשים בנתוני הבקשה, צריך להחליף את הנתונים הבאים:

  • ‫INTEGRATION_TYPE: סוג השילוב. מציינים את invisible.
  • ‫DISPLAY_NAME: השם של המפתח. בדרך כלל שם האתר.
  • ‫DOMAIN_NAME: דומיינים או תת-דומיינים של אתרים שמורשים להשתמש במפתח. מציינים את --allow-all-domains.
  • ‫WAF_FEATURE: השם של התכונה ב-WAF. מציינים את challenge-page.
  • ‫WAF_SERVICE: השם של ספק שירותי ה-WAF. מציינים את CA ל-Cloud Armor.
  • ‫DEFAULT_SCORE_THRESHOLD: במקרה של מפתחות אתגר שמבוססים על מדיניות, הערך הזה מגדיר את סף האתגר האוניברסלי למפתח כשלא מוגדר סף מותאם אישית. התכונה הזו נמצאת בתצוגה מקדימה.
  • ‫ACTION_SCORE_THRESHOLDS: במקרה של מפתחות אתגר שמבוססים על מדיניות, כאן מציינים את הפעולה ואת ערך הסף התואם בין 0.0 ל-1.0. לדוגמה, login='{"scoreThreshold": "0.3"}',signup='{"scoreThreshold": "0.1"}'. התכונה הזו נמצאת בתצוגה מקדימה.

ה-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, אתם צריכים לבצע את הפעולות הבאות:

  1. משייכים את המפתח של דף האתגר למדיניות האבטחה.
  2. הגדרת כלל במדיניות אבטחה להפניה אוטומטית של בקשה להערכה של reCAPTCHA.

אם הטמעתם טוקנים של פעולות או טוקנים של סשנים ב-reCAPTCHA, אתם צריכים להגדיר כלל במדיניות האבטחה שיבדוק את הטוקנים של reCAPTCHA.

לפני שמגדירים את כללי מדיניות האבטחה של Cloud Armor, חשוב להבין את מאפייני אסימון reCAPTCHA ב-Cloud Armor.

כדי ללמוד איך להגדיר מדיניות אבטחה של Cloud Armor ולהשתמש במפתחות reCAPTCHA עבור WAF עם מדיניות האבטחה, אפשר לעיין במאמר בנושא הגדרת כללים לניהול בוטים.

קבלת תוצאות reCAPTCHA

כשמשתמשים ב-reCAPTCHA action-tokens וב-session-tokens, אפשר לקבל את ציוני ה-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.

המאמרים הבאים