אבטחת Node.js / JS / TS

אבטחת Node.js, JavaScript ו-TypeScript דורשת בדיקת קלט והרשאות בזמן ריצה. סודות אינם שייכים לדפדפן; בדקו כל API ו-Server Action והימנעו מהרצת קלט כקוד.

עודכן תוכן העמוד: · מערכת VibeSec · מדיניות המקורות

סיכונים ובדיקות ראשונות

  • כל API ו-Server Action בודק session, בעלות וסכמת קלט בצד שרת
  • סודות אינם במשתני NEXT_PUBLIC/VITE או ב-props שמועברים ללקוח
  • אין eval, פקודות shell עם קלט משתמש או dangerouslySetInnerHTML ללא ניקוי

צ'קליסט אבטחה

  1. כל API ו-Server Action בודק session, בעלות וסכמת קלט בצד שרת
  2. סודות אינם במשתני NEXT_PUBLIC/VITE או ב-props שמועברים ללקוח
  3. אין eval, פקודות shell עם קלט משתמש או dangerouslySetInnerHTML ללא ניקוי
  4. שאילתות פרמטריות, אין העתקת אובייקטים לא מסוננים ואין הסתמכות על CORS כאימות
  5. בדקתי npm/pnpm audit, CSRF לפעולות עם עוגיות והגבלת קצב; trust proxy מוגדר לפי התשתית
לבדיקות המלאות ולסימון התקדמות

כלים מתאימים

  • Bearer

    SAST עם התמקדות בפרטיות ו-PII

  • CodeQL

    מנוע ניתוח סטטי של GitHub

  • Dependabot

    עדכונים אוטומטיים לתלויות פגיעות

  • eslint-plugin-security

    כללי ESLint לזיהוי דפוסים מסוכנים ב-JavaScript וב-Node.js; דורשים סקירה אנושית.

  • GitGuardian

    זיהוי סודות ומפתחות שדלפו לקוד

  • GitHub Advanced Security

    סריקת קוד וסודות ישירות ב-GitHub

  • Gitleaks

    סריקת סודות ומפתחות ב-Git

  • Lovable AI Security

    סריקת אבטחה מובנית ב-Lovable

  • NodeJsScan

    סריקה סטטית ליישומי Node.js לזיהוי דפוסי חולשה.

  • npm audit

    בדיקת תלויות מובנית ב-npm

  • OSV-Scanner

    איתור חולשות בתלויות עם OSV

  • pnpm audit

    בדיקת תלויות מובנית ב-pnpm

  • Retire.js

    איתור ספריות JavaScript עם חולשות ידועות בתלויות וביישומי Web.

  • Semgrep

    ניתוח סטטי מהיר עם כללים גמישים

  • Snyk

    סריקת אבטחה מקצה לקצה לקוד ותלויות

  • Socket

    הגנה מפני התקפות שרשרת אספקה ב-NPM

  • SonarQube

    איכות קוד ואבטחה בכלי אחד

  • Trivy

    סורק אוניברסלי לקונטיינרים ו-IaC

  • TruffleHog

    איתור סודות ומפתחות שנחשפו

כלי אבטחה נוספים

ספריות ותיעוד

  • argon2

    הצפנת סיסמאות מודרנית - זוכה בתחרות PHC.

  • bcrypt

    הצפנת סיסמאות בסטנדרט התעשייה. עמיד ל-brute force.

  • csurf

    ספריית CSRF של Express שהוצאה משימוש והועברה לארכיון. לא מומלצת לפרויקטים חדשים; שקלו את csrf-csrf כחלופה, בהתאם למבנה האפליקציה.

  • dompurify

    סניטיזציה של HTML למניעת XSS.

  • express-mongo-sanitize

    Middleware ותיק לסינון מפתחות $ ונקודות; תחזוקה מוגבלת ונדרשת בדיקת תאימות לגרסת Express. אינו תחליף לאימות סכמה.

  • express-rate-limit

    Middleware להגבלת קצב ב-Express; בפריסה מבוזרת נדרש store משותף.

  • Firebase Admin SDK for Node.js

    SDK שרת מיוחס העוקף Security Rules; דורש אימות והרשאה לפני שימוש.

  • Firebase Rules Unit Testing

    ספריית בדיקות רשמית ל-Security Rules באמצעות אמולטורים ומשתמשים מדומים.

  • helmet

    Middleware לאבטחת headers ב-Express/Node.js. הגנה בסיסית מיידית.

  • jsonwebtoken

    יצירה ואימות של JWT tokens.

  • mongo-sanitize

    ספרייה ותיקה להסרת מפתחות $; תחזוקה מוגבלת, אינה תחליף לסכמה ולבניית מסננים בטוחה. יש לבדוק התאמה לפני אימוץ.

  • node-postgres (pg)

    לקוח PostgreSQL ל-Node.js עם שאילתות פרמטריות; אינו מספק הרשאות אוטומטיות.

  • otplib

    יצירה ואימות של קודי OTP/TOTP ל-2FA.

  • OWASP NoSQL Security Cheat Sheet

    מניעת הזרקת NoSQL, אימות קלט, הרשאות מינימליות ואבטחת רשת.

  • OWASP SQL Injection Prevention Cheat Sheet

    מניעת SQLi באמצעות שאילתות פרמטריות, הפרדת נתונים מתחביר והרשאות מינימליות.

  • passport

    Middleware אימות עם 500+ אסטרטגיות.

  • rate-limiter-flexible

    הגבלת קצב בקשות למניעת brute force ו-DDoS.

  • Supabase JavaScript Client

    SDK רשמי ל-Auth ולגישה לנתונים; גישה בטוחה מחייבת RLS והרשאות מתאימות.

  • validator

    ספרייה לוולידציה של strings - email, URL, ועוד.

  • zod

    ולידציה סכימות TypeScript-first. מונע injection ובעיות type.

עדכונים אחרונים

  • עדכון כלי בקרת הקוד markdownlint-cli

    עדכון גרסה עבור כלי בקרת האיכות של קבצי markdown בפרויקט ה-Cheat Sheet של OWASP. שמירה על כלי פיתוח מעודכנים היא חלק חשוב בהבטחת שרשרת אספקה מאובטחת.

  • הקוד נוצר ב-10 שניות, הבדיקה לקחה 3 ימים: למה צריך ארכיטקטורה בקוד של AI

    שימוש בכלי AI ליצירת פיצ'רים מהיר עלול לייצר קוד מבולגן שקשה לתחזק ולבדוק. המאמר מסביר למה חשוב להטמיע ארכיטקטורה נקייה (Clean Architecture) עוד בשלב התכנון ולא להסתמך רק על מהירות יצירת הקוד.

  • הכירו את HTTP2Shell: סיכון אבטחה בטכנולוגיית הדחיסה Brotli

    חולשת אבטחה בטכנולוגיית הדחיסה Brotli עלולה להשפיע על אפליקציות Node.js ו-Python, וגם על אתרי WordPress. מדובר בסיכון פוטנציאלי להרצת פקודות מרחוק על השרת שלכם. חשוב לבדוק אם סביבת הפיתוח שלכם מעודכנת לגרסאות שמתקנות את הפגיעות.

  • GitHub משיקה כלי אבטחה חדש לחסימת חבילות תוכנה זדוניות

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

  • עדכון Node.js 26.13.0

    שוחררה גרסת LTS חדשה של Node.js המכילה שיפורים ותיקוני באגים יציבים. מפתחים המשתמשים בסביבת הריצה הזו בשרתים או באפליקציות צריכים לבחון שדרוג לתחזוקה תקינה.

  • פרצות אבטחה בסינון קבצי SVG: איך להגן על האתר

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

  • AI נגד כלים מסורתיים: מי מוצא יותר חולשות אבטחה?

    גוגל השוותה בין כלים אוטומטיים קלאסיים לבין מערכות AI בחיפוש באגים במנוע ה-JavaScript של דפדפן Chrome. התוצאות מראות שה-AI מצליח לאתר כמות משמעותית של חולשות, מה שמסמן את עתיד עולם ה-Fuzzing והאבטחה האוטומטית.

  • מעל 950 חנויות מקוונות הודבקו בקוד JavaScript שחומק מסורקי אבטחה

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

קריאה נוספת

בדיקת חדירות (PT): מתי נכון לעשות, ולמה

אמ;לק: בדיקת חדירות (Penetration Test, PT) היא ניסיון פריצה מבוקר שעושה אדם מקצועי לאתר או לאפליקציה שלכם, כדי למצוא חולשות לפני שתוקף אמיתי ימצא אותן. היא שווה את הכסף כשיש לכם משתמשים אמיתיים, מידע רגיש או כסף שעובר במערכת, ואחרי שכבר עשיתם את הבדיקות הבסיסיות בעצמכם. לפני זה, רוב הממצאים יהיו דברים שסורק חינמי היה מוצא.

גיא אקרמן · 4 דקות קריאה

ליווי של איש אבטחת מידע תוך כדי פיתוח: כן, לא, ומתי

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

גיא אקרמן · 3 דקות קריאה

שאלות נפוצות

איך מתחילים לאבטח Node.js / JS / TS?

אבטחת Node.js, JavaScript ו-TypeScript דורשת בדיקת קלט והרשאות בזמן ריצה. סודות אינם שייכים לדפדפן; בדקו כל API ו-Server Action והימנעו מהרצת קלט כקוד.

מה לבדוק קודם ב-Node.js / JS / TS?

התחילו בבדיקות הבאות והתאימו אותן למערכת שלכם: כל API ו-Server Action בודק session, בעלות וסכמת קלט בצד שרת. סודות אינם במשתני NEXT_PUBLIC/VITE או ב-props שמועברים ללקוח.

האם קוד AI ב-Node.js / JS / TS בטוח כברירת מחדל?

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

אילו כלי אבטחה מתאימים ל-Node.js / JS / TS?

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

איפה שומרים מפתחות וסיסמאות ב-Node.js / JS / TS?

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

איך יודעים שהעדכונים ל-Node.js / JS / TS רלוונטיים?

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

VibeSec — מרכז האבטחה ל-Vibe Coding