גוגל החליטה: הרשת עוברת ל-SSL

מה זה SSL, כיצד תוכלו להוסיף זאת לאתר שלכם והאם התהליך שווה את ההשקעה?

מקור: Shutterstock

מקור: Shutterstock

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

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

מה זה SSL?

קודם כל, מה זה? שימו לב לאתר אינטרנט ישראל בתמונה הבאה:

כיצד אתר מאובטח ב-SSL נראה בדפדפנים שונים. מקור: רן בר-זיק

כיצד אתר מאובטח ב-SSL נראה בדפדפנים שונים. מקור: רן בר-זיק

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

אז ככה זה נראה מבחינת העיצוב החיצוני, אבל מה זה אומר? בגדול, זה לא אומר שום דבר על האתר. האתר יכול להיות בנוי גרוע, לא מאובטח כלל ואפילו תינוק אינדונזי בן 3 יכול לפרוץ אליו כדי לשתול בו באנרים של ‘Free Gaza’ עם מלא שגיאות כתיב מביכות. אבל אם אתר משתמש בפרוטוקול SSL ולידי (Valid) – זה אומר שיהיה קשה מאוד למי שירצה בכך להאזין לתנועה ביניכם לבין האתר. בגלל זה, אם אנו מכניסים פרטים חשובים לאתר – חשוב שיהיה לו SSL כדי שאף אחד לא יוכל לגנוב את הפרטים כשהם עושים את דרכם אל ומהאתר.

איך משיגים את האבטחה הנחשקת? יש שתי פעולות שצריכים לעשות: פעולה מול שירותי האירוח ופעולות תיכנותיות.

מול שירותי האירוח

מאוד קל לרכוש שירותי SSL משרת האירוח שלכם וזה לא משנה אם מדובר בספק ישראלי או לא. כמובן שהשירות הזה עולה כסף: ראשית הוא דורש שלשרת שלכם יהיה IP קבוע (יש ספקים שלוקחים על זה אקסטרה כסף, רובם לא), כשהאישור עצמו עולה בין 50 ל-100 דולר לשנה. צריך לחפש SSL בממשק הניהול ולעקוב אחר ההוראות.

בדרך כלל יבקשו מכם את הדומיין שאותו אתם רוצים להפוך למאובטח ואת מספר כרטיס האשראי שלכם. אחרי מספר דקות בודדות תקבלו את הבשורה שקיבלתם את האישור. מזל טוב! תוכלו להקליד https://yoursite.com (כאשר yoursite.com הוא שם האתר שלכם, כמובן) ותראו שתוכלו להכנס. עם זאת, לעיתים לאחר הפעולה יתכן שתתקלו בתמונה הבאה:

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

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

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

הכנת האתר לעבודה עם פרוטוקול SSL

למה זה קורה ואיך מתקנים את זה

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

<link rel=’stylesheet’ href=’http://mysite.com’ type=’text/css’ media=’all’ />

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

<link rel=’stylesheet’ href=’https://mysite.com’ type=’text/css’ media=’all’ />

תהליך דומה קורה עם וידג’טים שמגיעים מפייסבוק, טוויטר או גוגל פלוס (טוב, נו). חשוב להקפיד שהכתובת שממנה אנו קוראים לוידג’ט היא מאובטחת.  דוגמה לוידג’ט של פייסבוק שמציג את הדף שלי:

<script src=”https://connect.facebook.net/en_US/all.js#xfbml=1″></script> <fb:like-box href=”https://www.facebook.com/internetIL” width=”260″ show_faces=”true” border_color=”AAAAAA” stream=”false” header=”true”></fb:like-box></div>

שימו לב שה-src של ה-script צריך להגיע מ-https.

כ-כלל, אם אתם מעבירים את האתר שלכם ל-SSL, תסתכלו על ה-HTML ותראו מאיפה מגיעים כל המשאבים של ה-http. בחלק מהאתרים, במיוחד הישנים יותר, מדובר על עבודת נמלים אבל אין ברירה. למשתמשי וורדפרס: שימו לב לשנות את כתובת האתר ל-https בהגדרות וכן להשתמש בתוסף: SSL Insecure Content Fixer.

וידוא מבחינת קוד PHP ו-JS

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

get_template_directory_uri()

הפונקציה מחזירה URL לתבנית הפעילה (לתבנית האב, ואם אין תבנית בת, אז עדיין זה אותו URL):

get_stylesheet_directory_uri()

הפונקציה מחזירה URL לתבנית בת. ואם אין תבנית בת, אז לתבנית הפעילה.

בתוספים, כדאי להשתמש בפונקציה הבאה שתמיד מחזירה את ה-URL של התוסף, כולל הפרוטוקול:

plugins_url( ‘/’, __FILE__ );

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

(isset($_SERVER[‘HTTPS’]) && $_SERVER[‘HTTPS’] !== ‘off’) ? ‘https’ : ‘http’;

אם אתם יוצרים וידג’ט ב-JavaScript ויוצרים קריאה אל משאב חיצוני, אל תשכחו להכניס משהו כזה:

(‘https:’ == document.location.protocol ? ‘https://’ : ‘http://’)

הפניות

כיוון שהאתר שלכם נגיש כעת גם מ-https וגם מ-http, כדאי להמנע מ’תוכן כפול’ ולנתב את כל התנועה דרך https. איך עושים את זה? בקלות מרובה ב-htaccess:

RewriteEngine On
RewriteCond %{HTTPS} !=on
RewriteRule ^.*$ https://%{SERVER_NAME}%{REQUEST_URI} [R,L]

Extended Validation Certificate

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

מקור: רן בר-זיק

מקור: רן בר-זיק

אלמנט זה בא לידי בשימוש בארגונים ושירותים שיש סכנה גבוהה לכך שהם יהפכו להיות מוקד לפריצות פישינג. במקרים כאלו המשתמשים יכולים לבחון מיד לא רק אם מדובר בתקשורת מאובטחת, אלא גם לאן התקשורת עוברת. כיוון שגם אתרי פישינג למדו להשתמש ב-SSL, השימוש ב-EV אמור למנוע את המצב הזה. Extended Validation Certificate עולה הרבה יותר (כמה מאות דולרים בשנה), תהליך האישור שלה אורך זמן רב יותר וההליך הוא מעט יותר מורכב. עם זאת, אופן ההטמעה של Extended Validation Certificate הוא זהה לחלוטין מכל הבחינות.

לסיכום

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

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

תודה ליקיר סיטבון על החידוד בחלק של וורדפרס!

הפוסט פורסם לראשונה בבלוג Internet Israel.

מקור תמונה ראשית: Shutterstock / https

רן בר-זיק

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

הגב

4 תגובות על "גוגל החליטה: הרשת עוברת ל-SSL"

avatar
Photo and Image Files
 
 
 
Audio and Video Files
 
 
 
Other File Types
 
 
 

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

סידור לפי:   חדש | ישן | הכי מדורגים
ד"ר SSL
Guest

אז קדימה geektime הגיע הזמן לעבור גם לSSL

asd
Guest

היי רן, יש לי שאלה.

אני מארח את האתר שלי על גבי התשתית של אמאזון. איך אני יכול “להוסיף” שכבת SSL בצורה הזאת?

תודה.

רן (אחר)
Guest

רוחב פס כמעט כפול ב-SSL. יותר איטי. IP קבוע עולה כסף אבל יש היום גם אפשרות לעבוד עם SSL ב-SNI. שזה לא דורש IP קבוע אבל לא עובד על חלונות XP ומטה וכל מיני דפדפנים ישנים.

משה
Guest

במקום לבדוק אם האתר במוד http או https אפשר פשוט להכניס // בתחילית כל כתובת url שרושמים בקוד והדפדפן כבר ישלים לבד את הפרוטוקול.

wpDiscuz

תגיות לכתבה: