---
title: "מסירת קובץ תצורה למתכנת בצורה מאובטחת"
url: https://uselinkpilot.com/he/blog/how-to-securely-deliver-a-config-file-to-a-developer
description: "הפרידו הגדרות מסודות, שלחו את הערכים הסודיים בקישור חד-פעמי או בקובץ מצורף שנמחק אחרי הורדה אחת, והשאירו את קובץ ה-.env מחוץ ל-git."
lang: he
---

אבטחה (https://uselinkpilot.com/he/blog/category/security)

# איך מוסרים קובץ תצורה למתכנת בצורה מאובטחת

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

LinkPilot Team (https://uselinkpilot.com/he/author/linkpilot-team) · האנשים שבונים ומפעילים את LinkPilot ב-TetraCore, LLC 26 באוקטובר 2026 · על LinkPilot (https://uselinkpilot.com/he/about)

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

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

## קראו את הקובץ כאילו כל שורה בו פומבית

פתחו את הקובץ ומיינו כל שורה לאחת משתי קבוצות.

- **הגדרות**: רמות לוג, פורטים, דגלי תכונות, נקודות קצה שאינן של סביבת הייצור, מזהי לקוח ציבוריים. המקום שלהן הוא במאגר, כקובץ דוגמה, ואפשר לשלוח אותן בכל דרך.
- **סודות**: סיסמאות למסדי נתונים, מפתחות API, סודות חתימה, מפתחות פרטיים, סודות לקוח של OAuth, כל דבר שנותן גישה. חפשו `PASSWORD`, `SECRET`, `TOKEN`, `KEY` ו-`PRIVATE`, ואז קראו גם את השאר, כי מחרוזת חיבור שהסיסמה משובצת בתוכה לא מכריזה על עצמה.

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

## השאירו את הסודות מחוץ לקובץ שנכנס למאגר

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

```bash
# .env.example (committed)
DATABASE_URL=postgres://app:CHANGE_ME@staging-db.internal:5432/app
STRIPE_SECRET_KEY=sk_test_CHANGE_ME
SESSION_SECRET=CHANGE_ME
LOG_LEVEL=debug
```

הוסיפו את `.env` לקובץ `.gitignore` לפני שלמישהו יש קובץ אמיתי, ושקלו pre-commit hook, כמו gitleaks, כדי ש-commit שנכנס בטעות ייכשל מיד.

## תנו למתכנת פרטי התחברות משלו כשאפשר

מסירה היא גם הזדמנות להפסיק לשתף. אם מסד הנתונים תומך במשתמשים נפרדים, צרו משתמש למתכנת עם ההרשאות שהעבודה שלו דורשת ועם תאריך תפוגה. אם ה-API מציע מפתחות מוגבלים, הנפיקו מפתח על שמו. המדריך לפרטי התחברות למסד נתונים לקבלנים (https://uselinkpilot.com/he/blog/how-to-send-a-temporary-database-login-to-a-contractor-securely) מתאר את השיטה הזו. את פרטי ההתחברות שנוצרו לאדם אחד אפשר להסיר לאותו אדם בלבד.

## איך מוסרים את הערכים הסודיים

יש שתי דרכים שעובדות, ובשתיהן הקובץ לא נשאר בתוך הודעה.

**הדביקו את השורות הסודיות בקישור חד-פעמי.** פתחו את הכלי לקישורים סודיים (https://uselinkpilot.com/he/tools/free-secret-link-generator), הדביקו רק את השורות שמכילות סודות וצרו את הקישור. הטקסט מוצפן בדפדפן שלכם לפני שהוא נשמר, העותק השמור מושמד בפעם הראשונה שהקישור נפתח, ותוקף הקישור פג אחרי שעה אחת, 24 שעות או שבעה ימים אם אף אחד לא פותח אותו. עד 10,000 תווים נכנסים בלי חשבון, ורוב קובצי ה-`.env` קטנים מזה פי כמה.

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

בכל אחת מהדרכים:

1. **אמתו את זהות המתכנת** דרך ערוץ הגיוס או החוזה, לא דרך הכתובת שביקשה את הקובץ.
2. **קבעו תפוגה** לפי חלון הזמן שבו הוא באמת ישתמש בקישור. שעה אחת אם הוא מחכה, יום אם הוא באזור זמן אחר.
3. **הגבילו את מספר הצפיות לאחת.**
4. **הוסיפו ביטוי סיסמה בחשבון Pro** לערכים של סביבת הייצור, ושלחו אותו בערוץ אחר.
5. **שלחו את הקישור עם הערה של שורה אחת** שמסבירה מה הוא ולאן הקובץ שייך. את ההגדרות שאינן סודיות שלחו בנפרד, או הפנו לקובץ הדוגמה במאגר.

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

## אמרו למתכנת איפה הקובץ צריך להיות

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

- **שמרו אותו בשם `.env` בתיקיית הבסיס של הפרויקט**, ובשום מקום אחר. בדקו שהקובץ `.gitignore` מכסה אותו לפני ה-commit הראשון.
- **אל תדביקו ערכים בכרטיסי משימה או בצ'אט** כדי לשאול אם הם נכונים. דווחו על משתנה חסר או לא תקין לפי השם שלו בלבד, והשולח ינפיק ערך חדש.
- **החלפה בסיום העבודה.** כשההתקשרות מסתיימת, הערכים בקובץ הזה מוחלפים. אמרו את זה מראש, כדי שאף אחד לא יופתע.

## אשרו, ואז נקו

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

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

## קריאה נוספת

- איך לשתף מפתחות API בצורה מאובטחת: https://uselinkpilot.com/he/blog/how-to-share-api-keys-securely
- שיתוף קישורים מאובטח למתכנתים: https://uselinkpilot.com/he/blog/secure-link-sharing-for-developers
- איך ליצור קישור זמני ומאובטח לשיתוף קבצים: https://uselinkpilot.com/he/blog/how-to-create-a-temporary-secure-link-for-sharing-files
- איך עובדים קישורים סודיים חד-פעמיים: https://uselinkpilot.com/he/blog/how-one-time-secret-links-work

## כלים למאמר הזה

מחולל קישורים סודיים חד-פעמיים

שתפו סיסמה או פתק בקישור שנפתח פעם אחת.
https://uselinkpilot.com/he/tools/free-secret-link-generator

הודעה שמשמידה את עצמה

שלחו פתק שנעלם אחרי קריאה אחת.
https://uselinkpilot.com/he/tools/burn-after-read-secret

מחולל קישורים עם תוקף

צרו קישורים שמפסיקים לעבוד בזמן שקבעתם.
https://uselinkpilot.com/he/tools/temporary-link

## שאלות נפוצות

### האם בטוח לשלוח קובץ תצורה באימייל?

### האם בכלל צריך לשמור סודות בקובץ התצורה?

### מה הדרך הבטוחה ביותר לשתף קובץ .env עם קבלן?

### האם צריך להצפין קובץ תצורה לפני ששולחים אותו?

### איך מוודאים שהמתכנת קיבל את הקובץ הנכון?

### מה עושים אם שלחתי את הקובץ לאדם הלא נכון?

## LinkPilot שולח קישור סודי שנמחק אחרי שפותחים אותו.

מוצפן בדפדפן שלכם, מוצג פעם אחת ואז מושמד. ללא חשבון.

יצירת קישור סודי (https://uselinkpilot.com/he/tools/free-secret-link-generator)

## לקריאה נוספת

אבטחה

### איך מיישמים שיתוף סודות מאובטח בצוותים מרוחקים

שיתוף סודות מאובטח בצוות מרוחק בחמישה שלבים: מלאי, כספת או קישור חד-פעמי לפי משך השימוש, שלושה כללים, הכלי בתוך Slack ותוכנית לדליפות.
https://uselinkpilot.com/he/blog/how-to-implement-secure-secret-sharing-for-remote-teams

אבטחה

### איך יוצרים דרך מאובטחת למסירת פרטי התחברות בין צוותים

דרך מאובטחת למסור פרטי התחברות בין צוותים: בחרו כספת או קישור חד-פעמי לפי אופן השימוש, הגבילו הרשאות, מנו אחראי והסירו את הגישה בזמן.
https://uselinkpilot.com/he/blog/how-to-create-a-secure-way-to-hand-off-credentials-between-teams

מעקב קישורים

### ניהול כתובות URL ממותגות בכמה חשבונות לקוח

מבנה לסוכנות לכתובות URL ממותגות של לקוחות: סביבת עבודה ודומיין לכל לקוח, תפקידים שמפרידים בין הסוכנות ללקוח ורשימת בדיקה לפרידה מלקוח.
https://uselinkpilot.com/he/blog/how-to-manage-branded-urls-across-multiple-client-accounts

## Structured data

```json
[
  {
    "@context": "https://schema.org",
    "@type": "BreadcrumbList",
    "itemListElement": [
      {
        "@type": "ListItem",
        "position": 1,
        "name": "דף הבית",
        "item": "https://uselinkpilot.com/he"
      },
      {
        "@type": "ListItem",
        "position": 2,
        "name": "בלוג",
        "item": "https://uselinkpilot.com/he/blog"
      },
      {
        "@type": "ListItem",
        "position": 3,
        "name": "מסירת קובץ תצורה למתכנת בצורה מאובטחת",
        "item": "https://uselinkpilot.com/he/blog/how-to-securely-deliver-a-config-file-to-a-developer"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "BlogPosting",
    "@id": "https://uselinkpilot.com/he/blog/how-to-securely-deliver-a-config-file-to-a-developer#article",
    "headline": "מסירת קובץ תצורה למתכנת בצורה מאובטחת",
    "description": "הפרידו הגדרות מסודות, שלחו את הערכים הסודיים בקישור חד-פעמי או בקובץ מצורף שנמחק אחרי הורדה אחת, והשאירו את קובץ ה-.env מחוץ ל-git.",
    "inLanguage": "he",
    "datePublished": "2026-10-26",
    "dateModified": "2026-10-26",
    "image": "https://uselinkpilot.com/logo-512.png",
    "author": {
      "@type": "Organization",
      "@id": "https://uselinkpilot.com/author/linkpilot-team#organization",
      "name": "LinkPilot Team",
      "url": "https://uselinkpilot.com/he/author/linkpilot-team"
    },
    "publisher": {
      "@type": "Organization",
      "name": "LinkPilot",
      "url": "https://uselinkpilot.com",
      "logo": {
        "@type": "ImageObject",
        "url": "https://uselinkpilot.com/logo-512.png",
        "width": 512,
        "height": 512
      }
    },
    "mainEntityOfPage": {
      "@type": "WebPage",
      "@id": "https://uselinkpilot.com/he/blog/how-to-securely-deliver-a-config-file-to-a-developer"
    }
  },
  {
    "@context": "https://schema.org",
    "@type": "FAQPage",
    "mainEntity": [
      {
        "@type": "Question",
        "name": "האם בטוח לשלוח קובץ תצורה באימייל?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "לא, אם יש בו סודות חיים. אימייל שומר עותקים בשתי תיבות הדואר, בכל מכשיר מסונכרן ובגיבויים שמאחוריהם. שלחו את הערכים הסודיים בקישור חד-פעמי, והשאירו לאימייל רק את ההגדרות שאינן סודיות."
        }
      },
      {
        "@type": "Question",
        "name": "האם בכלל צריך לשמור סודות בקובץ התצורה?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "רק כשהאפליקציה דורשת את זה. עדיף להשאיר ערכים ממלאי מקום בקובץ שנשמר במאגר ולהזריק את הערכים האמיתיים מהסביבה או ממנהל סודות בזמן ריצה. קובץ הדוגמה במאגר מתעד את המבנה, והערכים הסודיים עוברים בנפרד."
        }
      },
      {
        "@type": "Question",
        "name": "מה הדרך הבטוחה ביותר לשתף קובץ .env עם קבלן?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "אמתו את זהותו, תנו לו פרטי התחברות משלו שמוגבלים לסביבה שהוא צריך, שלחו את הערכים האלה בקישור חד-פעמי, ואמרו לו איפה הקובץ צריך להיות ושאסור אף פעם לעשות לו commit."
        }
      },
      {
        "@type": "Question",
        "name": "האם צריך להצפין קובץ תצורה לפני ששולחים אותו?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "אם מצרפים אותו לקישור סודי של LinkPilot, הוא מוצפן בדפדפן שלכם לפני ההעלאה ומושמד אחרי הורדה אחת, כך שאין צורך בשלב נפרד. אם משתמשים בערוץ אחר, הצפינו אותו בכלי כמו age או בארכיון מוגן בסיסמה, ושלחו את ביטוי הסיסמה בדרך אחרת."
        }
      },
      {
        "@type": "Question",
        "name": "איך מוודאים שהמתכנת קיבל את הקובץ הנכון?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "בקשו ממנו לאשר את שם הקובץ, את הסביבה ואת סימן זיהוי שאינו סודי, למשל הערת גרסה בראש הקובץ. אף פעם אל תבקשו ממנו לשלוח את התוכן בחזרה."
        }
      },
      {
        "@type": "Question",
        "name": "מה עושים אם שלחתי את הקובץ לאדם הלא נכון?",
        "acceptedAnswer": {
          "@type": "Answer",
          "text": "החליפו כל סוד שבקובץ במערכות שבהן הוא משמש, ואז עדכנו את הפריסות שהשתמשו בערכים הישנים. את הקובץ עצמו אי אפשר להחזיר."
        }
      }
    ],
    "inLanguage": "he"
  },
  {
    "@context": "https://schema.org",
    "@type": "SoftwareApplication",
    "@id": "https://uselinkpilot.com/#software",
    "name": "LinkPilot",
    "applicationCategory": "BusinessApplication",
    "operatingSystem": "Web",
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "url": "https://uselinkpilot.com",
    "offers": [
      {
        "@type": "Offer",
        "name": "Free",
        "price": "0",
        "priceCurrency": "USD",
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro",
        "price": "29",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "29",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency",
        "price": "299",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "299",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus",
        "price": "799",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "799",
          "priceCurrency": "USD",
          "billingDuration": "P1M"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Pro (yearly)",
        "price": "288",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "288",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency (yearly)",
        "price": "2988",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "2988",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Agency Plus (yearly)",
        "price": "7980",
        "priceCurrency": "USD",
        "priceSpecification": {
          "@type": "UnitPriceSpecification",
          "price": "7980",
          "priceCurrency": "USD",
          "billingDuration": "P1Y"
        },
        "url": "https://uselinkpilot.com/pricing"
      },
      {
        "@type": "Offer",
        "name": "Enterprise",
        "priceSpecification": {
          "@type": "PriceSpecification",
          "priceCurrency": "USD"
        },
        "url": "https://uselinkpilot.com/pricing"
      }
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "Organization",
    "@id": "https://uselinkpilot.com/#organization",
    "name": "LinkPilot",
    "alternateName": "LinkPilot by TetraCore",
    "url": "https://uselinkpilot.com",
    "contactPoint": {
      "@type": "ContactPoint",
      "contactType": "customer support",
      "email": "support@uselinkpilot.com",
      "url": "https://uselinkpilot.com/support"
    },
    "parentOrganization": {
      "@type": "Organization",
      "@id": "https://tetracorehq.com/#organization",
      "name": "TetraCore",
      "url": "https://tetracorehq.com/"
    },
    "logo": {
      "@type": "ImageObject",
      "url": "https://uselinkpilot.com/logo-512.png",
      "width": 512,
      "height": 512
    },
    "description": "LinkPilot is a secure link management platform for creating branded short links, tracking engagement, and sharing secrets with expiring, protected, self-destructing links.",
    "sameAs": [
      "https://x.com/uselinkpilot",
      "https://www.linkedin.com/company/uselinkpilot",
      "https://facebook.com/uselinkpilot",
      "https://github.com/TetraCoreHQ/linkpilot-cli",
      "https://github.com/TetraCoreHQ/linkpilot-mcp",
      "https://www.npmjs.com/package/linkpilot",
      "https://www.npmjs.com/package/@uselinkpilot/sdk",
      "https://www.npmjs.com/package/@uselinkpilot/mcp",
      "https://chromewebstore.google.com/detail/linkpilot-short-links-and/mnmppadihpcncicldpkmgknhnjkondad",
      "https://addons.mozilla.org/en-US/firefox/addon/uselinkpilot/"
    ]
  },
  {
    "@context": "https://schema.org",
    "@type": "WebSite",
    "name": "LinkPilot",
    "url": "https://uselinkpilot.com",
    "potentialAction": {
      "@type": "SearchAction",
      "target": "https://uselinkpilot.com/blog?q={search_term_string}",
      "query-input": "required name=search_term_string"
    }
  }
]
```