דוגמאות לשילוב עם Google Cloud Armor

במאמר הזה מוצגות דוגמאות להטמעה של התכונות של reCAPTCHA for WAF ב-Cloud Armor.

אפשר להשתמש בתכונה אחת או יותר של reCAPTCHA ל-WAF באפליקציה אחת.

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

דוגמה 1: שימוש באסימוני סשן של reCAPTCHA ובדף מבחן reCAPTCHA

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

באיור הבא מוצג תהליך עבודה שמשתמש בתכונות של מבחן reCAPTCHA ובאסימון סשן של reCAPTCHA:

דוגמה 2: שימוש בטוקנים של פעולות reCAPTCHA ובמבחן reCAPTCHA

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

  • הציון נמוך.
  • המאפיין action_name של טוקן הפעולה לא תואם לפעולת המשתמש שמוגנת.

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

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

   <script src="https://www.google.com/recaptcha/enterprise.js?render=ACTION_TOKEN_SITE_KEY"></script>
    <script>
     function onSuccess(token) {
       const xhr = new XMLHttpRequest();
       xhr.open('GET','http://www.example.com/checkout', false);
       xhr.setRequestHeader("X-Recaptcha-Token", token);
       xhr.onreadystatechange = function() {
         // Make sure that the request is finished and response is ready with 200
         if (this.readyState == 4 && this.status == 200) {
           // Display the response, it could be a reCAPTCHA challenge
           // page based on your Cloud Armor security rule settings.
            document.open();
            document.write(xhr.responseText);
            document.close();

         }
       };
       xhr.send(null);
     }

     grecaptcha.enterprise.ready(function () {
       document.getElementById("execute-button").onclick = () => {
         grecaptcha.enterprise.execute('ACTION_TOKEN_SITE_KEY', {
         }).then(onSuccess, onError);
       };
     });
    </script>

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