דילוג לתוכן
חיפוש באתר

אבטחה

ספאם בטפסים: reCAPTCHA, Turnstile ושכבות שהגולש לא מרגיש

איך עוצרים ספאם בטופס צור קשר: שדה מלכודת, בדיקת זמן, הגבלת קצב, reCAPTCHA ו-Turnstile — ולמה CAPTCHA עלול לפגוע בנגישות.

· עודכן: · 0 צפיות ·

ספאם בטפסים הוא פניות אוטומטיות שבוטים שולחים דרך טופס צור קשר, הרשמה או תגובות באתר — פרסומות, קישורים, ניסיונות פישינג ותוכן חסר משמעות. הפתרון הנפוץ הוא CAPTCHA, כמו reCAPTCHA של גוגל או Turnstile של Cloudflare, אבל הוא לא היחיד, ולא תמיד הטוב ביותר: CAPTCHA עלול לחסום גם אנשים, ובמיוחד אנשים עם מוגבלויות. ההגנה הטובה משלבת כמה שכבות שהגולש כמעט לא מרגיש.

למה בכלל מגיע ספאם

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

השכבות האפשריות

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

הסדר הזה הוא גם סדר העדיפויות שלי: מתחילים בשכבות שהגולש לא מרגיש, ומוסיפים CAPTCHA רק כשהן לא מספיקות.

reCAPTCHA של גוגל

בגרסה 3 של reCAPTCHA, לפי התיעוד של גוגל, אין אתגר בכלל: השירות מחזיר לכל בקשה ציון בין 0.0 (כנראה בוט) ל-1.0 (כנראה אינטראקציה לגיטימית), וגוגל מציעה להתחיל מסף של 0.5 ולכוונן לפי התנועה. שתי נקודות חשובות:

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

Turnstile של Cloudflare

לפי התיעוד של Cloudflare, Turnstile הוא חלופה ל-CAPTCHA שמריצה בדיקות בדפדפן במקום חידות חזותיות, ואפשר להוסיף אותו לכל אתר — גם אתר שלא עובר דרך הרשת של Cloudflare. יש לו שלושה מצבים: מנוהל (מציג תיבת סימון רק כשהסיכון גבוה), לא-אינטראקטיבי, ובלתי נראה. Cloudflare מציינת שהוא עומד ב-WCAG 2.2 ברמה AA. גם כאן, האימות האמיתי קורה בשרת, שמקבל את האסימון ובודק אותו.

בעיית הנגישות של CAPTCHA

ה-W3C פרסם מסמך שלם בנושא — Inaccessibility of CAPTCHA. הטענה המרכזית: משימות שנועדו להיות קלות לאדם וקשות למחשב מוציאות מהמשחק אנשים רבים עם מוגבלויות — עיוורים, לקויי ראייה, אנשים עם מוגבלויות קוגניטיביות. בלי חלופה נגישה, הם לא יכולים לשלוח את הטופס בכלל. המסמך מציין שגם מגבלות מצביות, כמו מסך קטן או סביבה רועשת, חוסמות משתמשים.

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

פרטיות

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

טעויות נפוצות

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

שאלות נפוצות

מה עדיף, reCAPTCHA או Turnstile?

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

הספאם מגיע גם אחרי CAPTCHA — למה?

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

מאמרים קשורים: ספאם בתגובות בוורדפרס: הגדרות, תוספי סינון ומתי פשוט לסגור תגובות.

הטפסים שאני בונה כוללים הגנה בשכבות, אימות בשרת ובדיקת נגישות — ראו אינטגרציות ו-API והנגשת אתרים. יש לכם טופס שמוצף בספאם? ספרו לי.

אהבתם את המאמר?

בואו נבנה יחד!

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

חיפוש באתר