קוראים כמוך עוזרים לתמוך ב-MUO. כאשר אתה מבצע רכישה באמצעות קישורים באתר שלנו, אנו עשויים להרוויח עמלת שותף.

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

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

מהי HTTP Strict-Transport-Security (HSTS)?

HTTP Strict Transport Security (HSTS) מאלץ משתמשים להשתמש ב-HTTPS עבור כל בקשה שהם מגישים בדפדפן שלהם. זוהי דרך מוצקה להילחם בהתקפות סייבר כמו הורדות דירוג ולהבטיח את אבטחת כל התעבורה.

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

זכור זאת בהתייחס לדגל ה-HTTP Header לדוגמה:

instagram viewer
Strict-Transport-Security: max-age=16070200;

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

כיצד להשתמש ב-HSTS

במקום להוסיף את כל המידע הזה של כותרות HTTP בשכבת הקוד, אתה יכול לעשות זאת באפליקציות Apache, IIS, Nginx, Tomcat ויישומי שרת אינטרנט אחרים.

כדי להפעיל HSTS ב- Apache:

LoadModule headers_module modules/mod_headers.so
<VirtualHost *:443>
כותרת תמיד מַעֲרֶכֶתקַפְּדָנִי-תַחְבּוּרָה-בִּטָחוֹן "max-age=2592000; includeSubDomains"
</VirtualHost>

כדי להפעיל HSTS ב-Nginx:

add_header Strict-Transport-Security max-age=2592000; כוללים תת-דומיינים

כדי להפעיל HSTS עם IIS web.config:

<system.webServer>
<httpProtocol>
<כותרות מותאמות אישית>
<הוסף שם="קפדני-תחבורה-אבטחה" ערך="max-age=63072000"/>
</customHeaders>
</httpProtocol>
</system.webServer>

עבור משתמשי Cloudflare

Cloudflare מספקת שירות HTTPS בחינם לכולם עם שירות SSL ללא מפתח; לפני הגשת בקשה לטעינה מוקדמת של HSTS, עליך לדעת שהתעודה שלך אינה שייכת לך. הרבה אתרים משתמשים בתעודות SSL כי הם דרך פשוטה לשמור על אבטחת הנתונים.

עם זאת, Cloudflare עכשיו תומך בתכונת HSTS. אתה יכול להפעיל את כל תכונות ה-HSTS, כולל טעינה מוקדמת, דרך ממשק האינטרנט של Cloudflare מבלי להיאבק בתצורות בשרת האינטרנט.

מה זה X-Frame-Options?

X-Frame-Options היא כותרת אבטחה הנתמכת על ידי כל הדפדפנים המודרניים. X-Frame-Options שואפת להגן מפני גניבת קליקים כגון Clickjacking. כפי שהשם מרמז, מדובר בפעולה של מסגרת מוטבעת פגיעה, המכונה גם iframe. אלו הם אלמנטים באתר המטמיעים דף HTML נוסף בתוך אתר "האב", כך שתוכל להשתמש בתוכן ממקורות אחרים באתר שלך. אבל תוקפים משתמשים ב-iframes בשליטתם שלהם כדי לגרום למשתמשים לבצע פעולות שהם לא רוצים.

מסיבה זו, עליך למנוע מתוקפים את היכולת למצוא iframes באתר.

היכן וכיצד להשתמש ב-X-Frame-Options?

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

עם זאת, כמפתח, ישנם שלושה פרמטרים שכדאי לדעת על X-Frame-Options:

  • לְהַכּחִישׁ: מנע לחלוטין את קריאת הדף בכל iframe.
  • SAMEORIGIN: מנע מכל תחום אחר מלבדך להתקשר בתוך ה-iframe.
  • אפשר-מ-uri: קבל קריאות iframe של URI שניתנו כפרמטר. חסום אחרים.

הנה ה SAMEORIGIN תכונה בולטת יותר. מכיוון שבעוד שאתה יכול לקרוא ליישומים בתת-הדומיינים השונים שלך עם iframes אחד בתוך השני, אתה יכול למנוע מהם לקרוא על הדומיין שבשליטת התוקף.

להלן דוגמאות כיצד ניתן להשתמש ב-SAMEORIGIN ו-X-Frame-Options עם NGINX, Apache ו- IIS:

שימוש ב-X-Frame-Options SAMEORIGIN עבור Nginx:

add_header X-Frame-Options SAMEORIGIN;

שימוש ב-X-Frame-Options SAMEORIGIN עבור Apache:

כותרת תמיד להוסיף X-Frame-Options SAMEORIGIN

שימוש ב-X-Frame-Options SAMEORIGIN עבור IIS:

<httpProtocol>
<כותרות מותאמות אישית>
<הוסף שם="X-Frame-Options" ערך="SAMEORIGIN" />
</customHeaders>
</httpProtocol>

הוספת הכותרת SAMEORIGIN בלבד תספק אבטחה רבה יותר למבקרים שלך.

מהי X-XSS-Protection?

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

כיצד להשתמש ב-X-XSS-Protection

דפדפנים מודרניים יכולים לזהות עומסי XSS פוטנציאליים על ידי סינון תוכן שנוצר על ידי יישומים. אפשר להפעיל תכונה זו עם מידע הכותרת X-XSS-Protection.

כדי להפעיל את הכותרת X-XSS-Protection ב-Nginx:

add_header X-Frame-X-XSS-Protection 1;

כדי להפעיל את הכותרת X-XSS-Protection ב- Apache:

כותרת תמיד צרף את X-XSS-Protection 1

כדי להפעיל את הכותרת X-XSS-Protection ב-IIS:

<httpProtocol>
<כותרות מותאמות אישית>
<הוסף שם="X-XSS-הגנה" ערך="1" />
</customHeaders>
</httpProtocol>

כדי למנוע מחסום הקוד עם התקפת XSS כברירת מחדל לפעול, אתה יכול להשתמש במשהו כזה:

X-XSS-הגנה: 1; מצב=חסימה

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

מה זה X-Content-Type-Options?

דפדפנים מבצעים ניתוח הנקרא MIME Type Sniffing על תוכן שמוצג להם על ידי אפליקציית האינטרנט. לדוגמה, אם יש בקשה לגישה לקובץ PDF או קובץ PNG, דפדפנים שמבצעים ניתוח על תגובת HTTP מסיקים את סוג הקובץ.

שקול קובץ עם סיומת jpeg, אך למעשה יש בו תוכן טקסט/HTML. לאחר שימוש בהרחבות והעברת הגנות במודול ההעלאה, הקובץ מועלה בהצלחה. הקובץ שהועלה נקרא דרך ה-URL והרחה מסוג MIME מחזירה טקסט/HTML כתוצאה מכך. זה מעבד את התוכן כ-HTML. זה הזמן שבו מתרחשת פגיעות XSS.

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

כותרת X-Content-Type-Options עבור Nginx:

add_header X-Content-Type-Options nosniff;

כותרת X-Content-Type-Options עבור Apache:

כותרת תמיד X-Content-Type-Options nosniff

כותרת X-Content-Type-Options עבור IIS:

<httpProtocol>
<כותרות מותאמות אישית>
<הוסף שם="X-Content-Type-Options" ערך="נוניף" />
</customHeaders>
</httpProtocol>

מהו דגל ה-HttpOnly Cookie?

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

זה אפשרי להשתמש בעוגיות למטרות עם זאת, מלבד העברת מפתח ההפעלה. האקרים יכולים לגלות נתוני משתמשים באמצעות פגיעות XSS שהוזכרה לעיל או באמצעות מתקפת בקשות חוצה אתרים (CSRF). אז אילו קובצי Cookie הכי חשובים מבחינת אבטחה?

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

זה המקום שבו HttpOnly מגיע ב. להלן דוגמה לאופן שבו הקצאת ה-cookie צריכה להיות:

מַעֲרֶכֶת-עוגייה: מִשׁתַמֵשׁ=t=cdabe8a1c2153d726; path=/; HttpOnly

שימו לב לערך HttpOnly שנשלח ב- סט-עוגייה מבצע. הדפדפן יראה זאת ולא יעבד ערכים עם דגל HttpOnly כאשר הגישה לקובץ ה-cookie מתבצעת דרך document.cookie מִשְׁתַנֶה. דגל נוסף המשמש בתהליך Set-Cookie הוא הדגל המאובטח. זה מציין שערך ה-cookie יתווסף לכותרת רק עבור בקשות HTTPS. אתרי מסחר אלקטרוני משתמשים בו בדרך כלל כי הם רוצים להפחית את תעבורת הרשת ולהגדיל את הביצועים.

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

מַעֲרֶכֶת-עוגייה: מִשׁתַמֵשׁ=t=cdabe8a1c2153d726; path=/; לבטח

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

צעדים קטנים עובדים עבור אבטחת אינטרנט רחבה

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