טכניקות לזיהוי ולכידת בוטים חמקניים

כשתוכנה מתחברת לשרת HTTP הוא יכולה לדווח לו מי היא, באחד השדות שנקרא user-agent.
הסיבה היא שיתכן שיש לוגיקה ספציפית בצד השרת שמיועדת לדפדפן מסוים (למשל כי יש בו באג שדורש התייחסות שונה מצד השרת).
דפדפנים הם לא התוכנות היחידות שמתחברות לאתרי אינטרנט, גם בוטים (קיצור של רובוטים), הידועים גם בשמות הפחות מחמיאים עכבישים וזחלנים מתחברים.
בוטים לדוגמא הם רובוטים של מנועי חיפוש, שמאנדקסים את הדפים באתר כדי לאפשר חיפוש מהיר.
בוטים אחרים שמפועלים על ידי ספאמרים סורקים את הדפים בחיפוש אחרי כתובות אימייל, או שולחים תגובות ספאם בבלוגים ובמערכות אחרות.
אתרי אינטרנט רבים היום מייצרים את התוכן שלהם בצורה דינאמית, מה שיכול לבלבל ולהעמיס על רובוטים שמנסים לאנדקס את האתר.
בעיה נוספת היא שלפעמים יש חלקים באתר שבעלי האתר לא מעוניין שיאונדקסו על ידי בוטים, למרות שהוא רוצה לאפשר אליהם גישה חופשית לאנשים.
הפתרון לשתי הבעיות הוא קובץ בשם robots.txt, שנמצא בספריית השורש של האתר. הקובץ הזה, שלמרות שלא מוגדר בשום תקן, הפך לסטנדרט להגדרה של איזורים אסורים לבוטים.
הנה הקובץ של גוגל, שאגב יכול לחשוף שרותים מעניינים שלהם.
מטבע הדברים הבוטים הלא לגיטמיים מנסים להסתיר את הזהות שלהם כדי למנוע מהשרת מלהתגונן בפניהם, ולכן מזדהים בעזרת user-agent של דפדפנים נפוצים, בנוסף, בדרך כלל רובוטים כאלו גם לא מתייחסים לקובץ הrobots.txt, אחרי הכל – אם בעל האתר טרח לומר שאסור לבוטים להכנס לאיזור מסויים, אולי זה בדיוק האיזור שאותם בוטים ירצו לסרוק?
כמובן שיש גם בוטים לגיטימיים שפשוט כתובים רע או שמכילים באג שגורם להם להתעלם מהקובץ.
אפשר להשתמש בעובדה שרובוטים זדוניים מתעלמים מקובץ הרובוטים כדי לזהות ואפילו לחסום אותם.
נתקלתי ברעיון כאן.
הרעיון פשוט למדי:
נכניס לקובץ הרובוטים קובץ שאסור לקריאה על ידי רובוטים.
נכניס לדפים שלנו לינק בלתי נראה שמפנה אל אותו קובץ.
מכיוון שהלינק הוא בלתי נראה, אנשים לא יכנסו אליו בטעות.
כל הפעלה של הקובץ הגיעה בעצם מרובוט סורר, מה שיאפשר הוספה שלו לבסיס הנתונים של הרובוטים (הסוררים) וגם חסימה של כתובת האי-פי שלו כדי למנוע ממנו לבצע באתר את מעשיו הנלוזים.
דרך נוספת לזהות בוטים שלא מזדהים בuser-agent שלהם היא באמצעות זיהוי תבנית הכניסות שלהם לאתר.
בוטים נוטים להיות מאוד יסודיים ובדרך כלל סריקה של בוט, במיוחד כזה שלא מזדהה, תהיה בסדר גודל של כמה מאות דפים בכל פעם, בהפרשים קצרים מאוד בין כניסה לכניסה.
אפשר להשתמש בידע הזה כדי לזהות בוטים, מחפשים סדרה ארוכה של כניסות מאותה כתובת אי-פי, כאשר ההפרשים בין כניסה לכניסה קצרים מדי מכדי שזה יהיה סביר שבן אדם ביצע אותם.

אני אממש את שתי הטכניקות באיזה שהוא שלב בFireStats כדי לזהות בוטים שכאלו.
במלכודת הבוטים אני אשתמש כדי לזהות בוטים בזמן אמת, ואילו בטכניקה השניה אני אשתמש כדי לזהות בוטים רטרוקטיבית כדי לנקות את בסיס הנתונים מזבל.

אינטרנט זהב: תגלשו חמש שעות בחודש

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

גוגל-מובייל

גוגלבוט חדש נצפה במחוזותינו, שעונה לשם:

Nokia6820/2.0 (4.83) Profile/MIDP-1.0 Configuration/CLDC-1.0 (compatible; Googlebot-Mobile/2.1; +http://www.google.com/bot.htm l)

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

הממ, בדיקה קצרה הוכיחה שגוגל כבר הפעילו את גוגל מובייל.

אינטרנט זהב ומלחמתה במשתפי הקבצים

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

שלשום החלטתי לבדוק את זה ברצינות, מסתבר שמשתמשים שמתחברים אלי מחו"ל מקבלים קצבים מגוחכים של 1.5 קילובייט לשניה, בעוד משתמשים שמתחברים אלי מהארץ מקבלים 25 קילובייט לשניה.

יש לי גישה לכמה שרתים בחו"ל, ומסתבר שכשאני מעלה קובץ אליהם, כאשר אני יוזם את החיבור, הקצב טוב למדי – עד 20 קילובייט לשניה
לעומת זאת, כאשר אני מתחבר לשרת בחו"ל (ssh), ויוזם הורדה של קובץ מהאתר שלי, הקצב הוא 1.5 קילובייט לשניה.
בדקתי את זה, והתופעה קורה בכמה שרתים שממוקמים במקומות שונים בעולם.

נראה שהיה שינוי במדיניות של אינטרנט זהב לגבי ההקצאה של רוחב פס, אבל בוא נחשוב למה.
אל מי מתחברים?
1. אל מי שמריץ שרת.
2. אל מי שמריץ תוכנת שיתוף קבצים.

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

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

כתוב-לי

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

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

שרות

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

זה שרות.

FireStats

ניסיתי, באמת שניסיתי לשפר את קאונטרייז, אבל, אם להיות עדין, הקוד שלו זוועתי.
העדפתי כבר לנצל את ההזמנות כדי ללמוד CSS, JavaScript, Ajax וPHP, ולכן החלטתי לכתוב תוסף סטטיסטיקות חדש, שיהיה האמא של תוספי הסטטיסטיקות באשר הם!
שמו של הרך הנולד הוא FireStats, ואני אשמח לקבל תרגומים בעברית לשם הזה – התרגום הזוכה יזכה בעותק חינם של FireStats!

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

הדגמה חיה של FireStats.

דף הבית של FireStats.