בדיקות אבטחת אתר שאפשר להריץ בלי לפרוץ לשום דבר
בדיקות אבטחת אתר פסיביות לחנויות אונליין: תוקף תעודת TLS/SSL, HSTS, CSP, nosniff, דגלי עוגיות, תוכן מעורב, jQuery מיושן, security.txt ו-DMARC.
צוות התוכן של FixReportsזמן קריאה: 9 דק׳
אפשר לבדוק חלק גדול מהגדרות האבטחה של חנות אונליין מבחוץ, פשוט על ידי קריאת מה שהאתר כבר שולח לכל מבקר: תעודת ה-TLS שלו, ההפניות, כותרות התגובה של HTTP, העוגיות, הסקריפטים שהוא טוען ורשומות ה-DNS הציבוריות שלו. הבדיקות הפסיביות האלה לא שולחות תעבורת תקיפה ולא דורשות התחברות, ולכן הן לא מעמיסות על החנות יותר מביקור רגיל. הן מאתרות פערי תצורה כמו תעודה שעומדת לפוג, HSTS חסר, עוגיות לא מאובטחות, תוכן מעורב או גרסת jQuery עם פגיעויות ידועות. הן אינן מבדק חדירות ואינן יכולות להוכיח שחנות מאובטחת.
עיקרי הדברים
- תעודות TLS מהימנות לציבור שהונפקו מאז 15 במרץ 2026 יכולות להיות בתוקף 200 יום לכל היותר, והמגבלה יורדת ל-100 יום במרץ 2027 ול-47 יום במרץ 2029 (CA/Browser Forum (נפתח בכרטיסייה חדשה)).
- דפדפנים מתעלמים מכותרת HSTS כשהיא נשלחת ב-HTTP רגיל (MDN (נפתח בכרטיסייה חדשה)).
- ההנחיה
frame-ancestorsשל CSP לא עובדת בתג<meta>; היא חייבת להישלח ככותרת תגובה (MDN (נפתח בכרטיסייה חדשה)). - גרסאות jQuery שקודמות ל-3.5.0 חשופות לשתי פגיעויות XSS, ו-CISA הוסיפה אחת מהן, CVE-2020-11023, לקטלוג הפגיעויות המנוצלות הידועות (Known Exploited Vulnerabilities) שלה ב-23 בינואר 2025 (NVD (נפתח בכרטיסייה חדשה)).
- קובץ
security.txtחייב לכלול את השדותContactו-Expiresולהיות ממוקם בנתיב/.well-known/security.txt(RFC 9116 (נפתח בכרטיסייה חדשה)).
מה נחשב לבדיקת אבטחה פסיבית?
בדיקה פסיבית רק קוראת את מה שהאתר או ה-DNS שלו מחזירים לבקשה רגילה.
כלומר: טעינה של דפים ציבוריים, קריאה של התעודה ושל כותרות התגובה, רישום של העוגיות והסקריפטים שדף מגדיר, ושאילתות על רשומות DNS ציבוריות. בדיקה פסיבית לא מנחשת סיסמאות, לא שולחת מטעני הזרקה (injection payloads), לא מגששת אחרי כתובות של ממשק הניהול ולא סורקת פורטים. את כל מה שמופיע בהמשך אפשר לעשות עם דפדפן, curl, openssl ו-dig.
איך בודקים את תעודת ה-TLS ואת תאריך התפוגה שלה?
קראו ישירות את התאריכים והשמות שבתעודה, וודאו שהחידוש שלה אוטומטי.
echo | openssl s_client -connect example.com:443 -servername example.com 2>/dev/null \
| openssl x509 -noout -subject -issuer -dates
ודאו ש-notAfter רחוק מספיק בעתיד, שהתעודה מכסה גם את example.com וגם את www.example.com אם אתם משתמשים בשניהם (מציג התעודות של הדפדפן מפרט את השמות), ושהדפדפן לא מציג אזהרות. משך התוקף של תעודות הולך ומתקצר לפי ה-Baseline Requirements של ה-CA/Browser Forum (סעיף 6.3.2, גרסה 2.3.1 נכון לאוקטובר 2026), בעקבות Ballot SC-081v3 (נפתח בכרטיסייה חדשה), שאומץ ב-11 באפריל 2025:
| מועד הנפקת התעודה | תוקף מרבי |
|---|---|
| לפני 15 במרץ 2026 | 398 יום |
| 15 במרץ 2026 עד 14 במרץ 2027 | 200 יום |
| 15 במרץ 2027 עד 14 במרץ 2029 | 100 יום |
| מ-15 במרץ 2029 | 47 יום |
תוקף קצר הופך חידוש ידני למסוכן, ולכן ודאו שחברת האחסון או כלי התעודות שלכם מחדשים את התעודה אוטומטית. ודאו גם ש-HTTP רגיל מפנה ל-HTTPS:
curl -sI http://example.com/ | grep -i -E "^HTTP|^location"
התשובה הרצויה היא 301 (או 308) עם כותרת location שמתחילה ב-https://.
אילו כותרות אבטחה חנות אונליין צריכה לשלוח?
קבוצה קטנה של כותרות תגובה חוסמת התקפות נפוצות בצד הדפדפן, כמעט בלי עלות.
| כותרת | מה היא עושה | ערך טיפוסי | מקור |
|---|---|---|---|
Strict-Transport-Security | אומרת לדפדפנים להשתמש רק ב-HTTPS ומונעת ממשתמשים לעקוף שגיאות תעודה בלחיצה | max-age=31536000; includeSubDomains | MDN (נפתח בכרטיסייה חדשה) |
Content-Security-Policy: frame-ancestors | קובעת אילו אתרים רשאים להטמיע את הדפים שלכם, וכך מגינה מפני clickjacking | frame-ancestors 'self' | MDN (נפתח בכרטיסייה חדשה) |
X-Frame-Options | בקרת מסגור (framing) ותיקה יותר; לפי OWASP, frame-ancestors מייתרת אותה בדפדפנים שתומכים בה | DENY או SAMEORIGIN | OWASP (נפתח בכרטיסייה חדשה) |
X-Content-Type-Options | עוצרת MIME sniffing וחוסמת סקריפטים וגיליונות סגנון שמוגשים עם סוג שגוי | nosniff | MDN (נפתח בכרטיסייה חדשה) |
Referrer-Policy | מגבילה כמה מהכתובות שלכם נשלח לאתרים אחרים | strict-origin-when-cross-origin | OWASP |
X-XSS-Protection | כותרת של מסנן XSS בדפדפן; לפי OWASP, היא עלולה ליצור פגיעויות XSS באתרים שהיו בטוחים בלעדיה | לא להגדיר, או 0 | OWASP |
בדקו מה החנות שלכם שולחת:
curl -sI https://example.com/
Strict-Transport-Security: max-age=31536000; includeSubDomains
Content-Security-Policy: frame-ancestors 'self'
X-Content-Type-Options: nosniff
Referrer-Policy: strict-origin-when-cross-origin
שתי אזהרות. includeSubDomains חוסם כל תת-דומיין שעובד רק ב-HTTP, ולכן בדקו קודם את תתי-הדומיינים. רישום מראש של HSTS (preload) מחייב max-age של 31536000 לפחות ואת includeSubDomains, ולכן הוסיפו preload רק כשכל תתי-הדומיינים מוכנים ל-HTTPS. מדיניות CSP מלאה שמגבילה סקריפטים שווה את ההשקעה, אבל OWASP מציין שהיא מורכבת להגדרה ולתחזוקה, וחנויות עם הרבה אפליקציות צריכות לבדוק אותה בקפידה.
האם העוגיות שלכם מוגדרות עם Secure, HttpOnly ו-SameSite?
עוגיות של סשן ושל סל צריכות לשאת את שלושת המאפיינים, ואפשר לראות אותם בכותרות התגובה Set-Cookie.
| מאפיין | ההשפעה (לפי MDN (נפתח בכרטיסייה חדשה)) | איפה זה חשוב |
|---|---|---|
Secure | העוגייה נשלחת רק ב-HTTPS; אתרים ב-HTTP רגיל לא יכולים להגדיר אותו | כל עוגייה בחנות שפועלת ב-HTTPS |
HttpOnly | JavaScript לא יכול לקרוא את העוגייה דרך document.cookie, וזה עוזר נגד XSS | סשנים של התחברות וסלים |
SameSite=Lax או Strict | מגביל מתי העוגייה נשלחת בבקשות בין אתרים (cross-site) | סשנים; Strict מתאים לעוגיות אימות ולעוגיות סל |
SameSite=None | העוגייה נשלחת בבקשות בין אתרים; חובה לשלב אותו עם Secure | רק תכונות מוטמעות של צד שלישי שזקוקות לכך |
אם לא הוגדר מאפיין SameSite, דפדפנים מתייחסים לעוגייה כאל Lax. עוגיות שהסקריפטים שלכם צריכים לקרוא לא יכולות להיות HttpOnly, ולכן התמקדו בעוגיות שמזהות לקוח מחובר או מנהל.
curl -sI https://example.com/ | grep -i "^set-cookie"
כלי הפיתוח של הדפדפן מציגים את אותו מידע, כולל עוגיות שסקריפטים מגדירים אחרי שהדף נטען.
איך מוצאים תוכן מעורב (mixed content)?
תוכן מעורב הוא כל משאב שנטען ב-HTTP בדף שמוגש ב-HTTPS, וקונסולת הדפדפן מפרטת אותו.
MDN (נפתח בכרטיסייה חדשה) מחלק אותו לשתי קבוצות. תמונות, אודיו ווידאו הם "ניתנים לשדרוג" (upgradable): דפדפנים מבקשים אותם אוטומטית ב-HTTPS. סקריפטים, גיליונות סגנון, iframes, גופנים ובקשות fetch() הם "ניתנים לחסימה" (blockable): דפדפנים חוסמים אותם, וזה שובר את כל מה שהיה תלוי בהם. גם בקשות משודרגות לכתובת IP חשופה נחסמות.
כדי למצוא אותו, פתחו את הקונסולה בתבניות המרכזיות (דף בית, דף קטגוריה, דף מוצר, סל) וחפשו http:// בקוד התבנית, בתוכן הדפים ובהגדרות האפליקציות. מרכז העזרה של Shopify מציין שכל דף בחנות שיש בו משאב שלא מועבר ב-HTTPS נחשב לא מאובטח (נפתח בכרטיסייה חדשה), וממליץ לארח משאבים ב-Shopify או להגיש אותם ב-HTTPS. ב-WooCommerce, אם האתר פעל אי פעם ב-http://, בדקו תוכן ישן של פוסטים ואת האפשרויות של התבנית.
איך מזהים ספריות JavaScript מיושנות עם CVE ידועים?
רשמו את הספריות שכל דף טוען, קראו את הגרסאות שלהן והשוו אותן למאגר הפגיעויות הלאומי של ארה״ב (NVD).
התחילו ב-jQuery. בקונסולת הדפדפן, $.fn.jquery מחזיר את הגרסה שנטענה (jQuery API (נפתח בכרטיסייה חדשה)). גרסאות שכדאי לסמן:
| CVE | גרסאות מושפעות | הבעיה | ציון NVD (v3.1) |
|---|---|---|---|
| CVE-2020-11022 (נפתח בכרטיסייה חדשה) | מ-1.12.0 ועד לפני 3.5.0 | העברת HTML לא מהימן למתודות כמו .html() או .append() עלולה להריץ קוד | 6.1 Medium |
| CVE-2020-11023 (נפתח בכרטיסייה חדשה) | מ-1.0.3 ועד לפני 3.5.0 | אותו דבר, עבור HTML שמכיל רכיבי <option>; בקטלוג ה-KEV של CISA מאז 23 בינואר 2025 | 6.1 Medium |
| CVE-2019-11358 (נפתח בכרטיסייה חדשה) | לפני 3.4.0 | זיהום אב-טיפוס (prototype pollution) דרך jQuery.extend(true, ...) | 6.1 Medium |
שתי הבעיות מ-2020 תוקנו ב-jQuery 3.5.0. גרסה פגיעה פירושה שהקוד הפגום נמצא באתר; האם אפשר לנצל אותו תלוי באופן שבו האתר מעביר אליו נתונים. WordPress כוללת את jQuery 3.5.1 מאז גרסה 5.6 (נפתח בכרטיסייה חדשה), ולכן jQuery ישן בחנות WooCommerce מצביע על WordPress שלא עודכנה, או על תבנית או תוסף שטוענים עותק משלהם. ב-Shopify, בדקו את קובצי התבנית ואת האפליקציות שמזריקות סקריפטים.
מהו security.txt והאם החנות שלכם צריכה אותו?
זה קובץ טקסט פשוט שאומר לחוקרי אבטחה איך לדווח לכם על פגיעות.
RFC 9116 (נפתח בכרטיסייה חדשה) (אפריל 2022, RFC מסוג Informational, כך שהעמידה בו וולונטרית) קובע שהקובץ חייב להיות מוגש ב-HTTPS בנתיב /.well-known/security.txt כ-text/plain. השדות Contact ו-Expires הם חובה, וה-RFC ממליץ על תאריך Expires שרחוק פחות משנה קדימה.
Contact: mailto:security@example.com
Expires: 2027-09-30T23:00:00.000Z
Preferred-Languages: en
Policy: https://example.com/security-policy
ב-WooCommerce אפשר להציב את הקובץ בשרת. בפלטפורמה מתארחת, בדקו אם אפשר לפרסם קובץ בנתיב הזה; אם לא, פרטי קשר לענייני אבטחה שמסומנים בבירור בדף יצירת הקשר עדיין עוזרים.
איך DMARC מגן על החנות מפני זיוף דוא״ל?
DMARC מאפשר לבקש מספקי תיבות דואר להעביר להסגר או לדחות דואר שמשתמש בדומיין שלכם בכתובת ה-From בלי לעבור SPF או DKIM מיושרים.
רשומה עם p=none רק אוספת דוחות; היא לא עוצרת דואר מזויף. לקוחות מצפים לקבל אישורי הזמנה ואיפוסי סיסמה מהדומיין שלכם, ולכן כדאי לחסום הודעת פישינג שמציגה בדיוק את הדומיין שלכם. בדקו את המדיניות עם dig +short TXT _dmarc.example.com, ועיינו ב-RFC 9989 (נפתח בכרטיסייה חדשה) לקבלת המפרט. DMARC לא מכסה דומיינים דומים (lookalike), אלא רק את הדומיין שמפרסם את הרשומה.
במה Shopify מטפלת, ומה בשליטתכם ב-WooCommerce?
Shopify מפעילה את השרתים שמאחורי חזיתות החנויות שלה, ואילו בחנות WooCommerce באחסון עצמי הגדרות השרת נשארות בידיכם ובידי חברת האחסון.
| בדיקה | Shopify | WooCommerce (אחסון עצמי) |
|---|---|---|
| תעודת TLS | חינם לכל הדומיינים שנוספו ל-Shopify (נפתח בכרטיסייה חדשה); בדומיינים של צד שלישי זה עשוי לקחת עד 48 שעות | חברת האחסון או הגדרה עצמית שלכם |
| הפניה מ-HTTP ל-HTTPS | הפלטפורמה | הגדרות שרת האינטרנט, ה-CDN או חברת האחסון |
| כותרות אבטחה | נשלחות מהשרתים של Shopify | שרת האינטרנט, ה-CDN או תוסף |
| דגלי עוגיות | העוגיות של Shopify עצמה מוגדרות על ידי הפלטפורמה; עוגיות של אפליקציות ושל התבנית באחריותכם | ליבת WordPress, התוספים והשרת |
| תוכן מעורב וספריות JS | התבנית, התוכן והאפליקציות שלכם | התבנית, התוכן והתוספים שלכם |
| security.txt ו-DMARC | הדומיין וה-DNS שלכם | הדומיין וה-DNS שלכם |
כשבדקנו כמה חזיתות חנות שמתארחות ב-Shopify באוקטובר 2026, התגובות שלהן כללו HSTS עם max-age של כ-91 יום, X-Content-Type-Options: nosniff ו-CSP עם upgrade-insecure-requests, ואילו frame-ancestors השתנה מחנות לחנות. Shopify מצהירה שהיא מוסמכת כעומדת ב-PCI DSS ברמה 1 (נפתח בכרטיסייה חדשה). התבנית והאפליקציות שהתקנתם נשארות באחריותכם.
ב-WooCommerce, מדריך ההקשחה (נפתח בכרטיסייה חדשה) של WordPress ממליץ לעדכן את WordPress ואת התוספים, למחוק תוספים שאינכם משתמשים בהם, ולשאול את חברת האחסון אילו אמצעי אבטחה היא נוקטת.
למה זה לא מבדק חדירות?
מבדק חדירות מנסה לבצע התקפות באופן אקטיבי; בדיקות פסיביות רק מתבוננות.
NIST SP 800-115 מגדיר מבדק חדירות כבדיקת אבטחה שבה הבודקים מחקים התקפות מהעולם האמיתי כדי למצוא דרכים לעקוף את מנגנוני האבטחה של מערכת (מילון המונחים של NIST (נפתח בכרטיסייה חדשה)). בדיקות פסיביות לא יכולות לראות פגמים בצד השרת בתוספים, סיסמאות ניהול חלשות או ממוחזרות, היעדר אימות דו-שלבי, בקרת גישה פגומה או קוד פגיע שאף פעם לא מופיע בקוד המקור של הדף. השתמשו בהן כבסיס שאפשר לחזור עליו בכל עת. לביטחון מעמיק יותר, הזמינו מבדק חדירות עם היקף מוגדר בכתב, על מערכות שבבעלותכם או שאתם מורשים לבדוק.
הסריקה החינמית מריצה מעבר ראשון על החנות שלכם. דוח אבטחת אתר מכסה את הבדיקות הפסיביות שבמאמר הזה, מ-TLS והפניות ועד כותרות, עוגיות, תוכן מעורב, ספריות מיושנות, security.txt ו-DMARC, עם תיקון לכל ממצא. כמו כל סקירה פסיבית, הוא לא יכול להבטיח שחנות מאובטחת.
שאלות נפוצות
האם בדיקות אבטחה פסיביות מסכנות את החנות שלי?
לא יותר מביקור רגיל. הן מבקשות את אותם דפים ציבוריים ורשומות DNS שכל דפדפן או שרת דואר היה מבקש, והן לא מנסות להתחבר או לשלוח מטעני תקיפה.
האם אפשר להוסיף כותרות אבטחה ב-Shopify?
כותרות התגובה של חזית החנות מגיעות מהשרתים של Shopify, ולכן אם חסרה כותרת שאתם צריכים, פנו לתמיכה של Shopify. תג <meta> של CSP בתבנית יכול להוסיף חלק מההנחיות, אבל MDN מציין ש-frame-ancestors לא נתמך ב-<meta>.
האם גרסת jQuery ישנה אומרת שהחנות שלי נפרצה?
לא. היא אומרת שנטען קוד עם פגיעויות ידועות, וזה מעלה את הסיכון אם האתר מעביר HTML לא מהימן למתודות המושפעות. עדכנו את הספרייה, או הסירו את התבנית או התוסף שטוענים אותה.
כמה זמן תעודת TLS יכולה להיות בתוקף היום?
תעודות מהימנות לציבור שהונפקו מ-15 במרץ 2026 יכולות להיות בתוקף 200 יום לכל היותר. המגבלה יורדת ל-100 יום מ-15 במרץ 2027 ול-47 יום מ-15 במרץ 2029.
האם קובץ security.txt הוא חובה?
RFC 9116 הוא RFC מסוג Informational, ולכן פרסום הקובץ הוא וולונטרי לפי התקן. הפרסום שלו זול, והוא נותן לחוקרים דרך ברורה ליצור איתכם קשר.
האם סריקה פסיבית נקייה אומרת שהחנות שלי מאובטחת?
לא. היא מראה שהתצורה הציבורית נראית תקינה. פגיעויות בצד השרת, אבטחת חשבונות ופגמים בלוגיקה העסקית דורשים בדיקות אחרות.
מקורות
- Baseline Requirements for the Issuance and Management of Publicly-Trusted TLS Server Certificates, version 2.3.1 (נפתח בכרטיסייה חדשה), CA/Browser Forum, 4 באוקטובר 2026
- Ballot SC-081v3: Introduce Schedule of Reducing Validity and Data Reuse Periods (נפתח בכרטיסייה חדשה), CA/Browser Forum, 11 באפריל 2025
- Strict-Transport-Security (נפתח בכרטיסייה חדשה), MDN Web Docs, שונה לאחרונה ב-11 בספטמבר 2026
- CSP: frame-ancestors (נפתח בכרטיסייה חדשה), MDN Web Docs, שונה לאחרונה ב-27 באוגוסט 2026
- X-Content-Type-Options (נפתח בכרטיסייה חדשה), MDN Web Docs, שונה לאחרונה ב-17 במרץ 2026
- Using HTTP cookies (נפתח בכרטיסייה חדשה), MDN Web Docs, שונה לאחרונה ב-17 בספטמבר 2026
- Mixed content (נפתח בכרטיסייה חדשה), MDN Web Docs, שונה לאחרונה ב-15 באוגוסט 2026
- HTTP Security Response Headers Cheat Sheet (נפתח בכרטיסייה חדשה), OWASP Cheat Sheet Series, נצפה ב-22 באוקטובר 2026
- CVE-2020-11022 (נפתח בכרטיסייה חדשה), NIST National Vulnerability Database, פורסם ב-29 באפריל 2020
- CVE-2020-11023 (נפתח בכרטיסייה חדשה), NIST National Vulnerability Database, פורסם ב-29 באפריל 2020
- CVE-2019-11358 (נפתח בכרטיסייה חדשה), NIST National Vulnerability Database, פורסם ב-20 באפריל 2019
- .jquery (נפתח בכרטיסייה חדשה), jQuery API Documentation, נצפה ב-22 באוקטובר 2026
- Updating core jQuery to version 3, part 2 (נפתח בכרטיסייה חדשה), Make WordPress Core, 5 בנובמבר 2020
- RFC 9116: A File Format to Aid in Security Vulnerability Disclosure (נפתח בכרטיסייה חדשה), IETF, אפריל 2022
- RFC 9989: Domain-Based Message Authentication, Reporting, and Conformance (DMARC) (נפתח בכרטיסייה חדשה), IETF, מאי 2026
- Enabling secure connections to your Shopify store (נפתח בכרטיסייה חדשה), Shopify Help Center, נצפה ב-22 באוקטובר 2026
- Security (נפתח בכרטיסייה חדשה), Shopify, נצפה ב-22 באוקטובר 2026
- Hardening WordPress (נפתח בכרטיסייה חדשה), WordPress Developer Resources, נצפה ב-22 באוקטובר 2026
- Penetration testing (glossary) (נפתח בכרטיסייה חדשה), NIST Computer Security Resource Center, מצטט את NIST SP 800-115 (ספטמבר 2008), נצפה ב-22 באוקטובר 2026
כל המדריכים
- Core Web Vitals בחנויות אונליין: LCP, INP ו-CLS בהסבר פשוטמה LCP, INP ו-CLS מודדים, ספי טוב וגרוע באחוזון ה-75, נתוני מעבדה מול נתוני שטח, והתיקונים הנפוצים לשיפור מהירות האתר ב-Shopify וב-WooCommerce.
- SPF, DKIM ו-DMARC לחנויות אונליין: דרישות Gmail ו-Yahooמה עושים SPF, DKIM ו-DMARC, מה Gmail, Yahoo ו-Outlook.com דורשים משולחי דוא״ל, איך מגדירים אותם ב-Shopify וב-WooCommerce ואיך מגיעים בבטחה ל-p=reject.
- חוק הנגישות האירופי (EAA) וחנויות אונליין: מה חל מאז יוני 2025מאז 28 ביוני 2025 חוק הנגישות האירופי (EAA) חל על חנויות שמוכרות לצרכנים באיחוד האירופי. מי כפוף, פטור לעסק זעיר, EN 301 549, WCAG ומידע נדרש.