דפדפן מדווח Europe/London בעוד מסד נתונים של IP ממקם את הבקשה ב-America/New_York. זו אי-התאמה בין שתי תצפיות, וכדאי לתעד אותה. היא אינה הוכחה שהמבקר משתמש ב-VPN, וההתייחסות אליה כהוכחה היא בדיוק המקום שבו רוב המימושים טועים. ההשוואה שלמטה שומרת את שני הערכים, ואת דרכי הכשל שלהם, בנפרד.

שתי תצפיות עם בעלים שונים

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

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

איך כל ערך מיוצר בפועל

דפדפן יכול לקרוא את האזור שנפתר שלו באמצעות new Intl.DateTimeFormat().resolvedOptions().timeZone, שמחזיר מזהה IANA הנגזר מהגדרות המעצב. הוא אינו מבקש הרשאת מיקום ואינו מתייעץ עם GPS. בשרת, קבעו את כתובת הלקוח מתצורת הפרוקסי המהימנה שלכם, ואז חפשו אותה אצל ספק מאושר. כותרת העברה שמספק המבקר אינה אוטומטית הכתובת הזו.

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

מה מוכיחים התאמה ואי-התאמה

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

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

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

ההיסטים של UTC אינם קיצור דרך

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

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

חסימה או ניקוד: בחרו את התגובה במכוון

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

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

מאמרים קשורים