פתרון בעיות

חשוב: גרסה 1.0 של reCAPTCHA API לא נתמכת יותר, צריך לשדרג לגרסה 2.0. מידע נוסף


לא הצלחתי להתאמן איפה להוסיף reCAPTCHA

עצה זו מתייחסת לכל מי שמשלב את reCAPTCHA – ללא קשר לשפה.

תחילה עליך לזהות שתי נקודות חמות בקוד שלך. אלה המקומות שבהם תוסיפו את שיחות reCAPTCHA.

  • הצגת reCAPTCHA: הנקודה החמה הראשונה היא הקוד שיוצר את הטופס. אנחנו מקווים שהתאפשר לכם למצוא את התג בקלות (על ידי חיפוש התג <form> ב-html) ושהצלחתם להציג את ה-CAPTCHA בטופס שלכם.

  • בודקים את reCAPTCHA: הנקודה החמה השנייה היא זו שנראה שגורמת לבעיות. עליכם לזהות את הקוד שמטפל בשליחת טופס – זהו הקוד שרץ כשהמשתמש לוחץ על submit. קשה לתאר בקווים כלליים איך הקוד הזה נראה, אבל הנה כמה רמזים שעשויים לעזור לכם:

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

    הטופס כבר כולל אימות

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

    לטופס אין אימות

    אם אין כרגע לוגיקת אימות לטופס – אם לחיצה על 'שליחה תמיד' מצליחה – סימן שהדבר מסובך יותר. במקרה כזה, תצטרכו להוסיף את קוד האימות של reCAPTCHA ממש לפני שקוד הטיפול בטופס הקיים יעשה את מה שהוא עושה כשהמשתמש שולח. תצטרכו גם להבין איך להציג מחדש את הטופס כדי לתת למשתמש ניסיון נוסף דרך ה-captcha. לצערנו, אין תשובה אחת לשאלה איך אתם עושים את זה. זה תלוי לחלוטין במבנה של הקוד שכבר יש לכם. אם הקוד הקיים לא מורכב מדי, אולי כדאי לפרסם אותו בפורום למפתחים של reCAPTCHA ולבקש עצות. (אם תפרסמו שם, הקפידו לכלול מספיק מידע כדי שאנשים אחרים יוכלו לעזור לכם. אמירה של "הקוד שלי לא עובד" בדרך כלל לא מניבה תוצאות טובות).

  • זה לא עובד! איך אוכל לקבל עזרה?

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

    הערה: ב-Mail לעשות שימוש במפתחות שונים מה-reCAPTCHA הראשי, שמבוסס על טפסים.

    צריך לוודא שבטופס נעשה שימוש בשיטת POST, או לשנות את משתני ה-handler של טופס reCAPTCHA ל-GET במקום ל-POST.

    אם reCAPTCHA פועל ופתאום מופיעה ההודעה "אירעה שגיאה פנימית", האם מחקתם לאחרונה את חשבון Google שבו השתמשתם כדי להירשם לקבלת המפתחות? אם כן, כדאי להירשם לקבלת מפתחות חדשים עם חשבון פעיל ולנסות אותם.

    reCAPTCHA מקבל מילים שגויות

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

    לא, התכוונתי *לגמרי* מילים שגויות

    אם reCAPTCHA מקבל קלט כלשהו, כנראה שאתם לא מאמתים את התשובה של reCAPTCHA באופן תקין בשרתי ה-API. כלומר, (1) אתם לא מפעילים כראוי את https://www.google.com/recaptcha/api/verify (או הפונקציה המקבילה אם משתמשים בפלאגין, כמו recaptcha_check_answer ב-PHP), או (2) לא נקטתם את הפעולה המתאימה בהתאם לתגובה מהשרתים שלנו. כדי ללמוד איך לבדוק אם המשתמש הזין את התשובה הנכונה, יש לעיין בהוראות הספציפיות שבהן השתמשת כדי להתקין את reCAPTCHA (באמצעות פלאגין או לא).

    המשתמשים שלי מתחילים לקבל פקודות Captcha של מילה אחת

    reCAPTCHA לא תמיד עוסק בשתי מילים. זוהי בדיקה שמאפשרת להבחין בין בני אדם לרובוטים. במקרים שבהם יש לנו סבירות גבוהה שאתם אנושיים, נציג לכם captcha הרבה יותר קל (ראו דוגמה למטה). המערכת שלנו מסתמכת על כל המעורבות שלכם עם reCAPTCHA – לפני, במהלך ואחרי פתרון הבעיה – כדי להחליט אם לעבור את הבדיקה או להיכשל, ולא על הפתרון בלבד.

    captcha קל

    אם אתה סקרן לגבי האבטחה של פריטי ה-captcha הקלים האלה, כדאי לעיין בבלוג שלנו: http://googleonlinesecurity.blogspot.com/2013/10/recaptcha-Just-got-easier-but-only-if.html