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

במאמר הזה מוסבר איך לשלב את Google Cloud Fraud Defense for Cloud Armor באתרים.

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

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

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

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

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

    להפעלת ה-API

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

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

הטמעה של תכונות של Fraud Defense for Cloud Armor

בהתאם לדרישות שלכם, אתם יכולים להשתמש בתכונה אחת או יותר של Fraud Defense 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.

        מופיע הקטע רשימת הדומיינים.

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

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

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

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

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

      4. בקטע Additional settings, מפעילים את המתג Will you deploy this key in a Web Application Firewall (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

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

        מופיע הקטע רשימת הדומיינים.

      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: במקרה של מפתחות אתגרים שמבוססים על מדיניות, ההגדרה הזו מגדירה את סף האתגר האוניברסלי למפתח כשלא מוגדר סף ניקוד מותאם אישית. התכונה הזו נמצאת בגרסת טרום-השקה (Preview).
    • ‫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"></script>
    </head>
    <body></body>
    </html>

הטמעת דף מבחן 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"}'. התכונה הזו נמצאת בגרסת טרום-השקה (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

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

אם הטמעתם דף עם מבחן reCAPTCHA, אתם צריכים לבצע את הפעולות הבאות:

  1. משייכים את המפתח של דף האתגר למדיניות האבטחה.
  2. הגדרת כלל במדיניות אבטחה להפניה אוטומטית של בקשה להערכה של 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.

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