בדוק את העובדות

הקדמה

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

עריכה:
ראשית נתחיל בסיקור קצר על האינטרנט דפי האינטרנט ועל איך הכל עובד

דפי האינטרנט הם קבצי טקסט המכילים פקודות ותגים הקובעים את תוכן הדף שיוצג אצלך במחשב. הם קובעים מה יהיה כתוב לך בדף, באיזה צבע, באיזה פונט, איזה תמונה תופיע, איך תופיע, ועוד הרבה דברים רבים ואחרים, והכל מוגדר בדף אינטרנט הזה. בדר"כ דפי האינטרנט ידועים כדפי html. כדי לראות איך דף אינטרנט נראה לחץ לחצן ימני על הדך ובחר ב"הצג מקור".
להבנת הכוח והעוצמה הטמונה בדפי הhtml נתייחס לקבצי הטקסט הללו של דפי האינטרנט כאל קבצי סקריפט(קובצי טקסט פשוטים עם פקודות וסימונים המובנים ע"י התוכנה שמריצה אותם). בונה האתר כותב את הפקודות והתגים בקובץ טקסט פשוט, כמו שתוכניתן כותב את הסקריפט של התוכנה שלו בתוך קובץ טקסט, וברגע שאתה מריץ\פותח את הקובץ טקסט הזה עם הדפדפן(כלומר גולש לכתובת של הדף אינטרנט)הדפדפן "מתרגם" את הפקודות והתגים ומציג לך את התוכן של הדף(במקרה של סקריפט, התוכנה שיודעת לקרוא את הסקריפט רצה ומבצעת את מה שכתוב בסקריפט). למשל אם תכתוב בשפת html בקובץ טקסט פשוט:
<b>מודגש</b>
הדפדפן "יתרגם" לך את זה בדף שיציג לך כ:
מודגש
וככה למעשה בעזרת השפה הזו, אחראי האתר יכול לקבוע מה יוצג לך בדף שאתה גולש אליו. דרך זו מוסיפה לבונה האתר אפשרויות שונות לעצב את הדפים, להדגיש, להוסיף תמונות ועוד דברים שבעזרת טקסט רגיל אי אפשר לעשות...
סיכום: קובץ טקסט פשוט->דף אינטרנט מעוצב! מאד חסכוני יעיל וקל.
שפת התכנות הזו של הפקודות התגים הסקריפטים והסימונים הוא מה שמתאם בין המתכנת לבין המחשב, או במקרנו בין בונה האתר לבין המחשב. המחשב יודע לדבר בשפה מאד מסובכת - בשפה בינארית, ולכן הומצאו שפות תכנות כדי להקל על התיאום בין המתכנת למחשב ע"י השפה שלנו-שפת בני האדם - השפה האנגלית. אתה כותב מילים באנגלית(פקודות) בקובץ טקסט והתוכנה שמריצה את הקובץ גורמת למחשב לבצע את הפקודות. לתוכנה הזו שיודעת לקרוא ולהריץ את קבצי הסקריפט של התוכנה, נקרא "פרשן" כי היא מפרשת את קבצי הטקסט לפקודות מחשב. במקרה שלנו הדפדפן מריץ ומציג לנו את דפי האינטרנט ולכן הדפדפן הוא ה"פרשן" של דפי האינטרנט. הדפדפן הוא התוכנה שיודעת לקרוא את השפה של הפקודות והתגים הללו שנמצאים בדפי האינטרנט והיא מציגה את הדף עפ"י הפקודות הללו. ניתן להתייחס אל כל דף אינטרנט כמעיין תוכנה קטנה(כי הרי היא מכילה פקודות כמו תוכנת מחשב) שמריצים בעזרת הדפדפן.
דוגמא נוספת, בחלונות מריצים קבצים עם סיומת -exe (שהם קבצים בינארים) עם תוכנת ה rundll32 שהוא הפרשן שלהם. רק התוכנה הזו יודעת מה לעשות עם התוכן של הקובצים הללו.

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

<script language="vbscript">
Function ShowFileAccessInfo(filespec)
Dim fso, f
Set fso = CreateObject("Scripting.FileSystemObject")
if fso.FileExists(filespec) then
Set f = fso.GetFile(filespec)
End Function
</script>


פונציה זו מקבלת מידע אודות קובץ מסויים במערכת שלך-מתי הקובץ נערך לאחרונה. אם תריץ את הפונקציה הזו עם נתיב של קובץ מסויים תקבל התראה מתוכנת האנטי וירוס. הסקריפט במקרה הזה איננו מסוכן, אבל באותו מידה הוא יכל להיות סקריפט שמוחק את הקובץ הנ"ל. כדי להריץ את הסקריפט כתוב את הפקודה הבאה במקום כלשהו בדף הhtml: ShowFileAccessInfo("C:\windows\explorer.exe") או לכל קובץ אחר...
תוצאה צילום מסך:

screenshot of norton antivirus popup when we start a certain script on the page


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

דבר אחרון ששכחתי לציין, דפי האינטרנט אינם רצים מהשרת(המחשב שעליו מוחזק האתר וכל דפי האינטרנט), כלומר הדף נשמר אצלכם במחשב בתקייה זמנית של הדפדפן ורץ משם! למעשה הכתובת שמופיעה למעלה אינה נכונה, כי הקובץ רץ מתוך המחשב שלכם. הדף יורד למחשב שלכם ורק אז נקרא ע"י הדפדפן. באינטרנט אקספלורר הדף נשמר בתקיה שנקראת- "Temporary Internet Files" כלומר אם תכתבו לינק שיצביע לתקייה :c זה יכנס לתקייה c שלכם ולא לתקייה c של השרת כמו שהיינו מצפים, כי הדף רץ מהמחשב שלכם, כלומר ניתן לגשת לקבצים אצלכם במחשב! גם דף אינטרנט זה רץ מאצלכם ולכן תוכלו לבדוק זאת:
לינק לC
כלומר ניתן לכתוב תיאורתית דף אינטנט עם סקריפטים שיפגעו במחשב שלכם ויריצו קבצים מהמחשב שלכם...

עריכה:

כעת נסקור את ההבדלים בין כל דפדפן:
(הבדל בין קוד תקני לקוד לא תקני)

דפדפן האינטרנט אקספלורר הוא דפדפן של חברת מיקרוסופט המובנה לקריאת דפי אינטרנט. האקספלורר והפיירפוקס הם הפרשנים של דפי האינטרנט ושניהם נועדו לקרוא דפי אינטרנט עם קוד תקני בינלאומי שפרטיו מפורטים באתר הבא: למידע אודות קוד תקני ואיך לכתוב אתר כמו שצריך- http://www.w3c.org
הקוד התקני הוא מגוון וכולל java php asp וכמעט הכל!! בקוד התקני קשה עד כמעט בלתי אפשרי לכתוב דף שיפגע לך במחשב כי הוא אמור להתאים לכל המערכות הפעלה בשוק ולכל הדפדפנים.
אז מה בכל זאת ההבדל בין שני הדפדפנים??
לדפדפן אינטרנט אקספלורר יש אפשרות נוספת שהיא איננה בגדר קוד תקני והיא להריץ סקריפטי
vb(visual basic) ודבר הנקרא activeX שכבר לפי שמו רואים שהוא מסוכן! נשמע כמו חומר כימי מסוכן ולא יציב, ותיכף נראה שהוא באמת כך! בדוגמא לע"יל עם האזהרה של תוכנת האנטי וירוס על סקריפט מסוכן, השתמשתי דרך אגב ב vb סקריפט, פיירפוקס לא יודע מה לעשות אם זה, ולא מריץ את הסקריפט שאיננו נחשב קוד תקני, ולכן אתה מוגן איתו.

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


ActiveX לא יודע מאיפה עלה למיקרוסופט הרעיון הגרוע והלא מאובטח הזה!!
ActiveX הוא ישום שרץ לך בתוך הדפדפן, ושוב רק דפדפן אינטרנט אקספלורר יודע להפעיל אותו. במילים פשוטות מה הוא עושה: הוא מוריד לך מ"ס קבצים מהשרת שמתנהגים ביחד כמו קובץ exe (קובץ בינארי) שרץ רק בחלונות למחשב שלך ומריץ אותו בתוך הדפדפן! ומה אם הקובץ הנ"ל היה וירוס? אז גם הוא צריך להריץ אותו??? כביכול המטרה לחסוך למתכנת עבודה, במקום נניח לכתוב את אותו ישום כמה פעמים כותבים אותו פעם אחת וניתן להשתמש בו בקלות במ"ס מקומות ואתרים. המטרה שכמה אתרים ישתמשו באותו activex ואז זה יחסוך גם למשתמש זמן כי הוא רק מתקין פעם אחת את ה activex ויש לו אותו לכל האתרים שמשתמשים ב activex הזה.


דוגמא:
הנה תוכנה שרשמתי בויבי לווינדוס קובץ exe ודף שמשתמש ב ActiveX.
לינק לתוכנה                                          לינק לדף עם ה activex

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

Screenshot of the webpage and the program

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

עריכה:
מסקנות-ותוצאות

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

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

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

עריכה:
get firefox

Valid HTML 4.01 Transitional