כולנו מכירים את התחושה המבאסת הזו, נכנסים לתיבת המייל ורואים שמחכה שם ליד חדש, והכל רק כדי לגלות שמדובר בספאם מיותר. אפשר להגיד על בוטים של ספאם הרבה דברים: הם מבזבזים לנו משאבים, גורמים ללקוחות שלנו לכעוס אבל בעיקר הם ממש ממש מעצבנים. לכו תסבירו עכשיו ללקוח שהבוטים האלה לא מבזבזים לו תקציב בקידום הממומן, או שהם לא תוצאה של תהליך SEO לא תקין. כך או אחרת, ברגע שלקוח שלכם מקבל הודעות ספאם הוא חושב שהבעיה היא בעבודה שלכם. כדי לשמור על יחסי עבודה טובים וכדי להימנע ממתן הסברים מיותרים, כדאי שתעשו את המקסימום כדי לחסוך מכם ומהלקוחות שלכם הודעות ספאם.
השאלה המתבקשת היא למה שלא נכניס CAPTCHA ובכך נמנע את הודעות הספאם לחלוטין? בגדול זה אפשרי, אבל ברגע שנעשה את זה נפגע באופן משמעותי ביחס ההמרה. אם בוטי הספאם מעצבנים אותנו, טפסי CAPTCHA מעצבנים את הגולשים שלנו. מבחינת טריידאוף, עדיף לקבל הודעות ספאם מאשר להכניס תוסף CAPTCHA שיקטין את כמות הפניות שאנחנו מקבלים.
בפוסט הזה אסקור 4 שיטות לחסימת בוטים של ספאם משליחת טפסי צור קשר. הנחת היסוד שלנו שמבין אוכלוסיית הבוטים, הבוטים של הספאם הם לא העפרונות הכי חדים בקלמר, ולכן מניפולציות פשוטות יחסית יאפשרו לנו להיפטר ממרבית הודעות הספאם שאנחנו מקבלים.
חלק גדול מהפוסט יתייחס לוורדפרס עם תוסף הצור קשר של Contact Form 7, אבל אצי גבפוסט גם את העיקרון ואפשרות להטמעה באתרים שלא מבוססים על וורדפרס.
1. שדה בלתי נראה – Fool the enemy
נקודת המוצא שלנו היא שבוטים מחפשים טפסים שאפשר לשלוח כדי לאתר חולשות או כדי לנסות לנצל שרתי דואר. כדי להבין איך השיטה הזו עובדת צריך לקחת צעד אחורה ולהבין איך טופס Form של HTML עובד. הרעיון של טופס הוא שיש בו שדות מסוגים שונים, זה יכול להיות שדות קלט רגילים, סלקטים, כפתורי צ'קבוקס וכו.,משתמש הקצה בוחר מה למלא בטופס לפני לחיצה על כפתור השליחה.
השיטה שתכף אראה מנצלת את העובדה שהבוטים ממלאים את כל השדות שמופיעים ב-HTML ולא יודעים להבדיל בין שדה קיים לשדה שאינו קיים. לנו יש את האפשרות ליצור שדה שיופיע מבחינת קוד המקור, אך לא יוצג בדף בגלישה בכל הדפדפנים (מחביאים את השדה עם CSS). הבוט ישלח את הטופס כשכל השדות מלאים כולל שדה המלכודת שהשארנו לו, ואנחנו מהצד שלנו לא נקבל טפסים שבהם מילאו את השדה הבלתי-נראה כיוון שרק בוטים ימלאו אותו (משתמש רגיל לא יראה את הטופס). איך עושים את זה?
Honeypot על Contact form 7 בוורדפרס
נשתמש בתוסף בשם Contact Form 7 Honeypot שיאפשר לנו ליצור שדה בלתי נראה ולחסום שליחה של טפסים שכוללים מילוי של השדה הבלתי נראה. לאחר הורדת התוסף והפעלתו גשו לכל הטפסים שלך והוסיפו שדה של Honeypot. נבצע את זה בצורה הבאה:
נתקין את התוסף ונפעיל אותו:
לאחר מכן נלך לטפסים הרלוונטיים של Contact Form 7 באתר ונלחץ על הכפתור של Honeypot:בחלון שנפתח בשדה של השם בחרו שם אקראי כלשהו כדי למנוע זיהוי של הבוטםי היותר מתוחכמים, למשל hellothere:
שמרו את הטופס יחד עם השדה החדש שהוספתם, וזהו, המלכודת הוטמנה 🙂
הוספת שדה בלתי נראה בטפסי HTML רגילים
אם אתם לא משתמשים בוורדפרס יש אפשרות לבצע את הפעולה של יצירת השדה הבלתי נראה גם. אסביר את העקרון הכללי ותוכלו ליישם אותו על האתר שלכם. קודם כל נוסיף את השדה וטקסט שמתאר אותו בצורה כזו שתתאים לשדות הקיימים בטופס שלכם. נביא לאלמנט CLASS ייחודי שנסתיר בהמשך באמצעות CSS. לדוגמא, תוכלו להוסיף בתוך תגית ה-FORM שדה בצורה הבאה:
<p class="secretclass">Don't fill this input: <input type="text" name="message" /></p>
לאחר מכן נגדיר עבור ה-CLASS שיצרנו secretclass כלל ב-CSS שיסתיר את השדה כך שמשתמשים רגילים שמשתמשים בדפדפן לא יוכלו לראות את השדה והטקסט שלפניו:
.secretclass { display:none;}
והשלב הסופי בתהליך הוא ליצור קוד PHP שיבדוק אם השדה של message הוכנס, ואם כן סימן שמדובר בבוט ואין סיבה לשלוח לנו מייל על זה (צריך להוסיף את הכלל לחלק שאחראי על שליחת המייל או האינטגרציה), קוד לדוגמא:
if(isset($_POST['message']) && $_POST['message'] == "")
בדרך הזו נקבע תנאי שבודק אם השדה של message ריק (אפשר לתת לשדה שם אחר), ואם הוא ריק נמשיך רגיל עם שליחת הטופס כפי שעשינו קודם. אם השדה מלא, לא נעשה כלום עם הטופס שנשלח.
2. התממשקות עם Akismet לאתרי וורדפרס
רובנו מכירים את Akismet כתוסף שמאפשר לחסום תגובות ספאם, אבל מה שאולי לא ידעתם הוא שאפשר להשתמש ב-Akismet כדי לחסום הודעות ספאם שנשלחות דרך Contact Form 7 בצורה פשוטה יחסית. ככה נעשה את זה: יש 3 שדות ש-Akismet מקבלים ובאמצעותם ניתן לזהות ספאם, עדיף לממשק את שלושתם, אבל אם אתם לא אוספים את כולם אז שלחו את מה שקיים (למשל אם אתם לא מקבלים מהגולשים שלכם לינק לאתר שלהם).
akismet:author – שם הליד
akismet:author_email – מייל הליד
akismet:author_url – קישור לאתר הליד
לדוגמא כך נכניס את ההתממשקות ב-Contact Form 7 לשדה השם:
[text* your-name akismet:author]
3. reCAPTCHA של גוגל
בתחילת הפוסט ציינת שאפשרות של CAPTCHA לא באה בחשבון מבחינתי, ואכן עד לא מזמן לא הייתי ממליץ להכניס את האפשרות הזו של גוגל כדי לא להקשות על יוזרים, אבל לאחרונה גוגל שידרגו את התוסף והוסיפו אלמנט של Invisible reCAPTCHA – כלומר אלמנט בלתי נראה שלCAPTCHA. באמצעות אלגוריתם המבוסס על Machine Learning גוגל יודעים לזהות בוודאות גבוהה למדי אם מדובר בבוט, ואז במקרה הזה להציג את האלמנט של ה-CAPTCHA. במקרים של גולשים לגיטימיים האלמנט לא יוצג כלל. הייתי ממליץ להשתמש בתוסף רק אם רואים שהבוטים מצליחים להתגבר על המגבלות האחרות שהכנסתם.
נתחיל מלהירשם כדי לקבל מגוגל site key ו-secret key, נעשה את זה כאן: https://www.google.com/recaptcha/admin
לאחר מכן כדי לממשק את האלמנט ב-Contact Form 7 היכנסו לחלק של צור קשר-> Integration בתפריט ולחצו על Configure Keys ומלאו את ה-site key ו-secret key שקיבלתם מגוגל:
לאחר מכן הכניסו בתוסף את השורטקוד: [recaptcha] ככה:
4. חסימה של כתובות IP ספאמיות
אם אתם ממשיכים לקבל ספאם, לפעמים אפשר לזהות כתובות IP קבועות או כאלה שנמצאות באותה שכונה (למשל 3 כתובות IP שמתחילות ככה 54.454.43). פתרון אפשרי הוא לחסום את הכניסה של אותן כתובות IP לאתר שלנו לחלוטין. כדי לזהות כתובות IP בעייתיות נגדיר שהמייל שישלח אלינו יכיל את כתובת ה-IP (או האינטגרציה), ב-Contact Form 7 נעשה את זה עם תגית [_remote_ip] שנוסיף לחלק המייל בטפסים הרלוונטיים:
לאחר מכן ניתן לבצע את החסימה בוורדפרס עם התוסף All In One WP Security או באמצעות יצירת קשר עם חברת האחסון ובקשה לחסימת כתובות ה-IP.
עם השיטות שפירטתי בפוסט תוכלו לצמצם את כמות הספאם שאתם מקבלים בטפסי הצור קשר ואפילו בחלק מהמקרים להיפטר מהספאם לחלוטין. מקווה שהטיפים בפוסט יועילו לכם באתרים לכם ובאתרי הלקוחות שלכם. אם יש לכם שיטות נוספות שעובדות טוב בשבילכם שתפו בתגובות 🙂