טוב, הפעם אנחנו עם אחת השאלות בה' הידיעה, בקרב בעלי אתרים ובוני אתרים.
כרגיל, נתחיל מהבסיס.
יש שתי דרכים שבהם תקבלו ספאם. אחת דרך טפסים באתר, ואחת ישירות לדוא"ל, דרך כתובת מייל שמפורסמת באתר.
בפוסט השבוע נדבר על ספאם שמגיע דרך טפסים באתר. אם מעניין אותך לשמוע על הבעייתיות שבפרסום כתובות מייל באתר ואיך אפשר להתמודד עם זה – כתבי לי במייל חוזר ואולי אכתוב פוסט גם על הנושא הזה.
מה זה ספאם ומאיפה הוא מגיע?
ספאם הוא בעצם דואר זבל. בדרך כלל נוצר על ידי רובוטים שממלאים טפסים באתר עם ג'יבריש או כל מיני הצעות מכירות.
כשאני אומרת "טפסים" אני מדברת על כל מקום שבו ממלאים שדות ושולחים אותם. כל טופס. זה יכול להיות טפסי צור קשר ותגובות או כל טופס אחר שקיים באתר. לא משנה באיזה תוסף השתמשנו, ברגע שיש שדות ויש כפתור שליחה – יהיו ניסיונות לספאם.
איך אפשר להגן על טפסים מפני ספאם?
יש כמה דרכים למניעה של ספאם באתר.
- מלכודת דבש – כל טופס מכיל מספר שדות. הרובוטים שלא רואים את השדות – פשוט עוברים וממלאים את כולם. לכן דרך מוכרת אחת למנוע ספאם היא להוסיף שדה מוסתר, שלא גלוי לגולשים ולכן הם לא ממלאים אותו. רובוטים, שכאמור – קוראים רק את הHTML ולא רואים בעיניים – ימלאו את השדה.
כעת נותר רק לחסום כל פנייה שנשלחת יחד עם אותו שדה נסתר כי היא בוודאות ספאם.
לאלמנטור יש שדה מסוג מלכודת דבש שאפשר להוסיף לטפסים שלו. יכול להיות שהאפשרות קיימת בתוספי טפסים נוספים. - חסימת כתובות IP מספימות – גם כאן יש מגוון של תוספים. יש כאלה שעובדים רק על האתר. מזהים את כתובות הIP שמהם נשלחים הטפסים, ובמידה וכתובת IP חוזרת על עצמה הרבה מידי, או לפי מדדים אחרים שלהם, הם חוסמים את כתובת הIP הזו מלגשת לאתר.
תוספים אחרים עובדים מול מאגרים גלובליים. כך שבמאגר של התוסף נשמרות כתובות שמספימות, והן ייחסמו בכל האתרים שבהם מותקן התוסף. - קאפצ'ה – הפתרון הכי מוכר, ולדעתי הכי יעיל.
אז בואו נדבר על קאפצ'ה
קאפצ'ה (Captcha) הייתה בעבר מעין תמונה שבה הופיעו מספרים ואותיות בצורה מעוותת, ועל הגולש היה להזין בשדה את התווים שבתמונה. היו גם קאפצ'ות שדרשו למשל חישוב. צריך לכתוב את התוצאה של התרגיל החשבוני שמופיע בתמונה.
כך הם חסמו רובוטים שניסו להספים את האתר, כי הרובוטים לא ידעו לפענח את התמונות, ובלי למלא את השדה – הטופס לא נשלח.
עם השנים העולם התקדם, והיום יש תוכנות שמפענחות תמונות בקלות. כך שהקאפצ'ות הללו הופכות פחות ופחות יעילות.
וכאן גוגל נכנס לתמונה
כמו בכל מקום, גם לכאן גוגל הגיעו. הפעם עם המוצר החדשני שלהם – Google ReCaptcha. הריקאפצ'ה של גוגל עובדת בצורה מורכבת יותר מהקאפצ'ות האחרות, ובעצם בודקת ספאם בשתי שלבים.
בשלב מילוי הטופס לפני השליחה מתבצעת הבדיקה הראשונה. את בטוח מכירה את השדה המלבני האפור שהיה צריך לסמן בו V של "אני לא רובוט". כאשר גולש או רובוט ניסה לשלוח את הטופס שוב ושוב, באיזשהו שלב הV לא קרה מיד, אלא קפצה חלונית עם כמה תמונות, והוראה בסגנון "יש לסמן את כל התמונות שבהן מופיעים רמזורים".
לאחר שליחת הטופס לשרת – מתבצעת בדיקה נוספת מהשרת של האתר לשרתים של גוגל, ורק אם גוגל החזיר הודעת הצלחה – הטופס נשלח למנהל האתר/התגובה פורסמה/הנתונים נשמרו וכו', מה שהטופס אמור היה לבצע.
ואז נמאס לאנשים לסמן V
אז בשלב הראשון גוגל עברו לקאפצ'ה נסתרת, מה שנקרא reCaptcha v2 invisible.
אבל היום אנחנו עובדים עם הגרסה החדשה ביותר, שהיא reCaptcha V3.
מדובר בקאפצ'ה נסתרת, הגולש לא רואה אותה בטופס, והיא נשלחת מאחורי הקלעים לפני שהטופס נשלח לשרת. כך גולשים או רובוטים שמנסים להספים – יקבלו בעת ניסיון שליחה את אותה חלונית מוכרת של "יש לסמן את כל התמונות שבהן מופיעים אופניים", גם בלי שהוא ניסה לסמן V.
כלומר – עושה עבודה דומה, בצורה שונה והרבה יותר נעימה ונוחה. גם למשתמש וגם למתכנת.
אז איך אני מתקינה reCaptcha בטפסים?
כדי שהטפסים באתר יעברו דרך הבדיקה של גוגל למניעת ספאם, יש לעבור שתי שלבים.
בשלב הראשון, יש ללכת לממשק של גוגל ריקאפצ'ה, ולפתוח שם פרויקט חדש. כתבי בגוגל "google recaptcha" והכנסי לתוצאה הראשונה, או לחצי על הקישור הבא:
https://www.google.com/recaptcha/about/
כעת יש ללחוץ על הקישור V3 admin console. שימי לב לא ללחוץ על הכפתור הכחול הגדול. הוא לא רלוונטי לנו.
נכנסנו לממשק. כאן אני יכולה לראות את כל הפרויקטים שיצרתי בעבר, וגם להוסיף פרויקט חדש. לחצי על סימן ה+, ובמסך החדש מלאי את פרטי האתר. שימי לב שעליך להזין גם את הדומיין של האתר. במידה ואת עובדת עם אתר פיתוח – הכניסי את הדומיין של 2 הסביבות – גם הפיתוח וגם הלייב.
בנוסף אני ממליצה להכניס את המייל של הלקוח כאיש קשר בפרויקט, כדי שבמידה ויהיה צורך – גם הוא ייקבל התראות מגוגל.
סיימנו, יש לנו פרויקט. כעת אנחנו עוברים למסך חדש, שבו יש שתי שדות עם שתי מפתחות שגוגל יצרה במיוחד בשביל הפרויקט הזה. Site key ו-Secret key.
סיימנו עם העבודה מול הממשק של גוגל. עכשיו נחזור לניהול של האתר. כאן העלילה טיפה מסתבכת, כי בכל תוסף זה נראה קצת אחרת. לצורך הדוגמה נתמקד באלמנטור.
קודם כל, נכנס להגדרות של אלמנטור, ושם לטאב "אינטגרציות". את המפתחות שקבלנו מגוגל נכניס לשדות שתחת הכותרת reCaptcha V3, על מנת שאלמנטור יוכל להשתמש בהן כשהוא מטמיע ובודק את הקאפצ'ה.
אחר כך בכל אחד מהטפסים נדאג להוסיף שדה של ריקאפצ'ה V3, כדי שגם הטופס הזה יהיה מאובטח.
איך להסתיר את התווית של הקאפצ'ה באתר?
כאשר מטמיעים ריקאפצ'ה של גוגל באתר, מיד נוכל לראות לשונית קטנה של גוגל, שאומרת משהו בסגנון "אתר זה מוגן באמצעות Google reCaptcha". זו תווית שבדרך כלל נרצה להסתיר.
בהתאם להנחיות של גוגל, אפשר להסתיר את התווית, אך ורק אם כוללים באתר את ההודעה הבאה:
This site is protected by reCAPTCHA and the Google. Privacy Policy and Terms of Service apply.
את יכולה להכניס את הטקסט הזה בתחתית האתר, בסוף הfooter, כלומר אין חובה שתהיה לו איזושהי נוכחות מסיבית באתר.
לגבי הסתרת התווית עצמה, עליך להוסיף את קוד הCSS הבא, כך שיופיע בכל עמודי האתר:
.grecaptcha-badge{ visibility: hidden; }
את קוד הCSS תוכלי להוסיף בCSS מותאם איפשהו בHEADER או בFOOTER של האתר, או לחילופין לעטוף אותו בתגית <style> של HTML ולהכניס אותו ב"ניהול קודים" של אלמנטור.
(אין להשתמש בdisplay: none במקרה הזה, כדי לא למנוע מהקאפצ'ה לעבוד).
בהצלחה!