וובמאסטר - תיכנות ובניית אתרים

גנבו לי את הכרוכית - הגנה על כתובות דוא"ל

זהר עמיהוד/‏ 14 אפריל, 2006
F+
F-
רבים בנו לעצמם אתרים (או שאחרים בנו עבורם) ולאחר זמן מוצאים שתיבת הדואר שלהם 'מוצפת' בדואר זבל, ותוהים למה ואיך זה קרה?
 
כל מפתח אתר רוצה שכתובתו האלקטרונית תוצג באופן ברור באתר האינטרנט שפיתח. כל מי שבנו עבורו אתר מעוניין שכתובתו האלקטרונית תופיע בצורה בולטת באתר האינטרנט של החברה. ופתאום, תיבת הדואר מוצפת בדואר זבל!
 
הערה: האקדמיה ללשון עברית עִברתה את הסימן @ הנקרא בפי כל "שטרודל". מעתה שמו בישראל: כרוכית. כל העולם מכיר אותו בשם at.
 
דפי האתר המאוחסנים בשרתי החברה עוברים סריקה על ידי תוכנות הנקראות Spiders, שלפעמים קוראים להם Crawlers, knowledge-bot או סתם knowbots. תוכנות אלו משוטטות באינטרנט, בדרך כלל מטעם מנועי החיפוש כמו Google, Yahoo, MSN, ומעדכנות את מסדי הנתונים של מנוע החיפוש שבשליחותו הם פועלים. עד כה, הכל בסדר.
 
תוכנות מסוג Spiders גם מופעלות על ידי אנשים המעוניינים בכתובת האלקטרונית שלך כדי שיוכלו לשלוח לך פרסומת/וירוסים או כל דבר אחר שלא ביקשת. התוכנה נקראת spam bot והשולח אותה נקרא spammer ובעברית זַבְלָן (שעיסוקו בזבל, דואר זבל). התוכנות סוקרות את דפי האינטרנט בדיוק באותו אופן בו עושים זאת מנועי החיפוש, אלא שהפעם החיפוש הוא אחר השטרודל, הסימן @ או הצירוף mailto:.
 
אם כתובת הדואר האלקטרוני שלך נמצאת כבר בדף אינטרנט תוכל להיכנס למנוע החיפוש החביב עליך ולחפש את הכתובת שלך. אתה עשוי להיות מופתע מהתוצאות.
 
מה רואה ה-Spider באתר שלי?
תוכנות מסוג Spider קוראות את תוכן דפי האינטרנט באתר שלך, קבצים עם סיומת HTML, ASP, PDF, TXT ואחרים. ה- Spider לא מפענח את תוכן הקובץ באופן שהדפדפן עושה לקובץ HTML או ASP הוא פשוט קורא את תוכנו.
 
נניח שיש דף אינטרנט המציג תמונה. כך נראה קוד המקור להצגת התמונה:
<IMG src="imageFile.jpg">
כאשר תפעיל את הדף, תראה את התמונה. כאשר ה-Spider קורא את קוד המקור של הדף, הוא אינו "רואה" את הדף כפי שהוא מוצג על ידי הדפדפן. הוא קורא ורואה רק את קוד המקור: <IMG src="imageFile.jpg"> , וזה כל ההבדל!
 
דוגמה נוספת:
בקוד המקור כתוב:
<P bgcolor="red"><FONT color=white><SPAN dir=rtl>ùìåí</SPAN></FONT></P>
אתה רואה את הטקסט שלום כתוב בצבע לבן על רקע אדום. ה- Spider רואה את קוד המקור כמו שרשמת אותו בדף האינטרנט.
 
בדף HTML כך נראה קישור לדואר אלקטרוני:
<A href="mailto:name@domainName.com">bla<A>
או כך:
<A href="mailto:name@domainName.com">name@domainName.com</a>
מכיון שדף HTML הינו מסמך טקסט פשוט (Plain Text), קל מאוד ל-Spider ל"חלץ" ממנו את המחרוזת המכילה @, שהיא הדואר האלקטרוני לא רק מהתגית <A HREF="MAILTO…">. לכן, אל תכתוב את הדואר האלקטרוני שלך גם לא כחלק מהמאפיין title או כל מאפיין אחר. עליך לוודא שבדף האינטרנט שלך לא יהיה רשום הדואר האלקטרוני שלך.
 
אז איך מציגים דואר אלקטרוני בדף אינטרנט באופן שה-Spider לא ידע שזהו דואר אלקטרוני?
 
הערה: השאלה היא כמה מאמץ אתה מוכן להשקיע בהגנה על הדואר האלקטרוני שלך. ככל שאתה מקשה יותר על ה-Spider, אתה מקשה גם על הלקוחות שלך. הגנה מוחלטת – אין! אין הגנה מוחלטת מפני וירוסים, אין הגנה מוחלטת בשימוש בקרם הגנה מקרני השמש ואין הגנה מוחלטת על תיבת הדואר שלך מפני דואר זבל. אבל, זה לא אומר שצריך להרים ידיים. אז קדימה לעבודה!
 
 
שיטה א: הוספת מלל
הרעיון
הוספת מלל לכתובת באופן שלמעשה תהפוך אותה לכתובת שאינה קיימת. התוספת יכולה להיות כל תו או תווים שהם. גם רווח הוא תו.
משתמש
צריך להבין מה רוצים ממנו ולמחוק את תוספת הטקסט.
Spider
אם כל העולם ינהג כמוך ויכתוב את אותו טקסט כפי שאתה כתבת, ה-Spider 'יבין' זאת ויוכל בקלות לפענח את הכתובת שלך.
 
דוגמה:
<A href="mailto:name@REMOVETHISdomainName.com">bla<A>
 
כמובן שהכתובת name@REMOVETHISdomainName.com אינה קיימת. כדי שהכתובת הזו תהיה שימושית, המשתמש צריך למחוק את הטקסט REMOVETHIS. זאת טִרחה קטנה מצידו.
 
ואפשר גם:
<A href="mailto:name -at- domainName -dot- com">bla<A>
 
העניין הוא שאם אנשים רבים יעשו כמוך, אז ה-Spider עשוי להבין שמנסים לעבוד עליו. לכן, עליך להיות יצירתי, למשל:
<A href="mailto:name@TAKEITAWAYdomainName.com">bla<A>
 
הערה: יתכן שבשיטה זו ישלחו המיילים לכתובת name@TAKEITAWAYdomainName.com, ואליך, מן הסתם, הם לא יגיעו.
 
 
שיטה ב: הצבה, שימוש ב- Internet-Safe Characters
הרעיון
שימוש בייצוג דצימלי של התווים. לכל תו יש סימן קבוע המחליף אותו.
משתמש
אין משמעות לפעולה זו.
Spider
אם ה-Spider יודע את השיטה, הוא יוכל בקלות לפענח את הכתובת שלך.
 
הערך הדצימלי של התווים a עד z הוא בין 97 ל- 122:
Dec
45
46
64
95
97
98
99
100
101
102
103
104
105
106
107
Char
-
.
@
_
a
b
c
d
e
f
g
h
i
J
k
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Dec
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Char
l
m
n
o
p
q
r
s
t
u
v
w
x
Y
z
 
דוגמה:
<a href="m&#97;&#105;&#108;&#116;o:&#105;&#110;&#102;&#111;&#64;&#104;&#111;&#100;&#46;&#99;&#111;&#46;&#105;&#108;">bla</a>
 
הכתובת היא info@hod.co.il. יש פה שילוב של תווים רגילים ותווי Ascii. כאשר המשתמש ילחץ על הקישור, הכל יפעל כשורה. אבל, אם יבקש לראות את קוד המקור תהיינה לו שתי הפתעות: האחת, הוא לא ימצא את השטרודל (@) והשנייה, הוא יצטרך להשקיע מאמץ בפענוח.
 
אם ל-Spider יש טבלת המרה שכזאת, הטִרחה היתה לשווא.
 

שיטה ג: הצבה, שימוש ב- Internet-Safe Characters
הרעיון
שימוש בייצוג הקסדצימלי (בסיס 16) של התווים. לכל תו יש סימן קבוע המחליף אותו.
משתמש
אין משמעות לפעולה.
Spider
אם ה-Spider יודע את השיטה, הוא יוכל בקלות לפענח את הכתובת שלך.
 
הערך ההקסדצימלי של התווים a עד z הוא בין 61hex לבין 7Ahex:
 
Hex
2d
2e
40
5f
61
62
63
64
65
66
67
68
69
6a
6b
Char
-
.
@
_
a
b
c
d
e
f
g
h
i
j
k
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
Hex
6c
6d
6e
6f
70
71
72
73
74
75
76
77
78
79
7a
Char
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
 
דוגמה:
<a href="mailto:%69%6e%66%6f%40%68%6f%64%2e%63%6f%2e%69%6c">bla</a>
 
הכתובת היא info@hod.co.il. כאשר המשתמש ילחץ על הקישור, הכל יפעל כשורה. אבל, אם יבקש לראות את קוד המקור תהיינה לו שתי הפתעות: האחת, הוא לא ימצא את השטרודל (@) והשנייה, הוא יצטרך להשקיע מאמץ בפענוח.
 
אם ל-Spider יש טבלת המרה שכזאת, הטִרחה היתה לשווא.
 
הערה: שיטות ב' ו- ג' קלות ופשוטות למפתח האתר שמצפין, וגם קלות ופשוטות לפיצוח על ידי ה-Spider.
 
 
שיטה ד: תמונה עם הכתובת האלקטרונית שלך
הרעיון
במקום קישור לכתובת האלקטרונית שלך, תופיע תמונה (תמונה ללא קישור).
משתמש
כדי לכתוב לך הוא יצטרך להעתיק ידנית את הכתובת מהתמונה ולהקליד אותה בתוכנת הדואר שלו.
Spider
לא מבין מה רוצים ממנו.
 
דוגמה:
 
מחולל כזה ניתן למצוא בכתובת http://www.digitalcolony.com/02/maskemail/inc/genEmailMask.asp
 

אם אתה דואג מכך שה- Spider יכול לבצע עליה OCR (Optical Character Recognition) ולהפוך את הגרפיקה לטקסט, אתה מוזמן להביט בתמונה הבאה:
 
נכון, יצירת תמונה אחת כזו דורשת מאמץ וזמן, אבל רק עין אנושית תוכל לפענח את הכתוב בה..., או שדרוש לשם כך Spider מאוד מאוד אינטליגנטי.
 
והקוד?
<img src="images/signEnc.jpg" />
 
זהו זה! בשום פנים ואופן לא ל"עטוף" את התמונה בתגית
<script>
  a = "name";
  b = "domainName.com";
  document.write("<a href='mailto:" + a + "@" + b + "'
    title='ôúéçú úåëðú äãåàø ùìê'>");
  document.write("ãåàø àì÷èøåðé");
  document.write("</a>");
</script>
הערה: משפט document.write צריך להרשם ברצף (ללא לחיצת Enter) עד לסימן ; שלאחריו ניתן ללחוץ Enter.
 
עליך לשתול את התסריט הזה בדף האינטרנט שאתה בונה, בדיוק במקום שאתה רוצה שיהיה קישור לדואר האלקטרוני שלך.
 

אם אתה רק רוצה שתופיע הכתובת האלקטרונית שלך ללא קישור, עליך לכתוב את הקוד הבא:
<script>
  a = "name";
  b = "domainName.com";
  document.write(a + "@" + b);
</script>
 
אפשר לעשות את התסריט יותר מורכב על ידי הצפנה, אבל שוב, אם ה-Spider מסוגל להריץ את התסריט, להצפנה זו אין ערך.
 
אם המשתמש יבקש לראות את קוד המקור, הוא יצטרך לאתֵר את השטרודל ולחבר את הכתובת בעצמו.
 
 
שיטה ו: שילוב שיטות: ד' ו- ה' באופן הבא:
על פי שיטה ד' בה הופכים את הכתובת לקובץ תמונה ועל פי שיטה ה' בה כותבים תסריט. הבה נשלב ביניהן.
 
הנה תסריט לדוגמה.
<script>
  a = "name";
  b = "domainName.com";
  document.write("<a href='mailto:" + a + "@" + b + "' title='ôúéçú úåëðú äãåàø ùìê'>");
  document.write("<img src='images/signEnc.jpg' />");
  document.write("</a>");
</script>
הערה: משפט document.write צריך להרשם ברצף (ללא לחיצת Enter) עד לסימן ; שלאחריו ניתן ללחוץ Enter.
 
עליך לשתול את התסריט הזה בדף האינטרנט שאתה בונה, בדיוק במקום שאתה רוצה שיהיה קישור לדואר האלקטרוני שלך.
 
אם אתה רק רוצה שתופיע הכתובת האלקטרונית שלך ללא קישור – חזור לשיטה ד'.
 

שיטה ז: כריכת נתונים
הרעיון
כתובת הדואר האלקטרוני נמצאת בקובץ טקסט ואינה חלק מדף HTML. בעת ביצוע הדף, כתובת הדואר נשלפת מהקובץ ומוטבעת בדף HTML.
משתמש
צריך שרת עם מערכת הפעלה Windows.
Spider
אינו אמור להבין מה הקוד עושה. אם הוא סורק רק קבצים עם סיומת html, htm, asp אז בסדר. אם הוא סורק גם קבצים אחרים, יש בעיה. אבל אפשר להתחכם.
 
הקוד נראה כך:
<object classid=
  "clsid:333C7BC4-460F-11D0-BC04-0080C7055A83"
  id="ply" height="0" width="0">
      <param name="DataURL" value="bla.vdr" />
      <param name="UseHeader" value="True" />
</object>
<a datasrc='#ply' datafld='PlayIt'>bla</a>
 
זה תוכנו של קובץ טקסט בשם bla.vdr (שים לב! זהו קובץ טקסט פשוט עם סיומת vdr במקום txt):
PlayIt
mailto:zohar@hod-ami.co.il
 
הסבר: למה נתתי את הסיומת vdr לקובץ טקסט? עשיתי זאת כדי להוריד את הסבירות בה ה-Spider ייגש לקובץ. סיומת vdr היא סתם המצאה שלי וכל סיומת אחרת שתעלה בדעתך תתאים. רק אל תיתן סיומת doc, pdf, txt וסיומות מוכרות אחרות.
 
אם המשתמש יבקש לראות את קוד המקור תהיינה לו שתי הפתעות: האחת, הוא לא ימצא את השטרודל (@) והשנייה, הוא יצטרך להשקיע מאמץ בהבנה של מה קורה ואיך מתקשר הקובץ עם סיומת vdr?!?
 
 
סיכום
יש מספר דרכים להגן על הכתובת האלקטרונית שלך. בכל דרך שתבחר יש לשקול את היתרונות והחסרונות כלפי המשתמשים ואת הקושי או הקלות של ה-Spider בפענוח (פיצוח) הכתובת.
 
 
המאמר נכתב ע"י: זהר עמיהוד מחברת הוד עמי, מחבר הספר "HTML & CSS למפתחי אתרים באינטרנט", "אמא, אבא, בניתי אתר באינטרנט" וספרים נוספים בנושאי תכנות: ASP, JavaScript ועוד. תואר שני במינהל עסקים מטעם אוניברסיטת תל-אביב ומוסמך מטעם חברת Microsoft.

זהר עמיהוד

זהר עמיהוד, מומחה שיווק וקידום אתרים באינטרנט. עוזר לבעלי עסקים להביא יותר לקוחות לאתר, ליצור יותר פניות ויותר מכירות. מרצה בנושאי שיווק באינטרנט. תואר שני במינהל עסקים מטעם אוניברסיטת תל-אביב, מוסמך מטעם חברת מיקרוסופט, מחבר ספרי מחשבים רבי-מכר.
אתר: http://www.hod-ami.co.il
תגיות: אבטחה‏  /  הגנה‏  /  משפט‏  

תגובות בפייסבוק

תגובות למאמר



תגיות פופולאריות

X
הצטרף לעמוד שלנו בפייסבוק להישאר מעודכן!
וובמאסטר © כל הזכויות שמורות