מאָדערנע ווייכווארג פראיעקטן פארלאזן זיך שטארק אויף מאדולארן דיזיין און עקסטערנע לייברעריס, דעריבער איז פארשטיין דיפענדענסי אינדזשעקציע אין פּיטהאן וויכטיג – נישט נאר פאר ריינע ארכיטעקטור, נאר פאר זיכערע, סקאלירבארע אנטוויקלונג. נו, וואס פונקטליך איז דיפענדענסי אינדזשעקציע אין פּיטהאן? דאס איז א דיזיין מוסטער וואו קאמפאנענטן ווי סערוויסעס, קליענטן, אדער קאנעקטארס ווערן אריינגעגעבן אין א קלאס פון אינדרויסן, אנשטאט צו ווערן באשאפן אינעווייניג. ווען גענוצט ריכטיג, ערלויבט פּיטהאן דיפענדענסי אינדזשעקציע בעסערע קאנטראל איבער עקסטערנע דיפענדענסיעס, מאכנדיג אפליקאציעס גרינגער צו טעסטן און שווערער צו קאמפראמיסירן.
וואָס איז דעפּענדענסי ינדזשעקשאַן אין פּיטהאָן?
דעפּענדענסי אינדזשעקשאַן (DI) איז אַ ווייכווארג פּלאַן מוסטער וואו אָביעקטן באַקומען די רעסורסן וואָס זיי דאַרפֿן—ווי באַדינונגען אָדער קליענטן—פון אַרויס, אַנשטאָט זיי צו שאַפֿן אינעווייניק.
דאָס פּראָמאָטירט:
- לויזע פארבינדונג צווישן קאמפאנענטן
- גרינגערע טעסטינג (למשל, אויסשעפּן דיפּענדאַנסיז)
- מער פלעקסיבלע קאנפיגוראציע און ווידער-ניצן
בייַשפּיל:
אנשטאט צו האַרדקאָדירן אַן SMTP קליענט, גיט איר עס אריין. דאָס מיינט:
- איר קענט פּרובירן מיט אַ פאַלשן קליענט.
- איר קענט בייטן אימפלעמענטאציעס (למשל, לאקאל קעגן קלאָוד).
- איר קאָנטראָלירט פון וואַנען אייערע אָפּהענגיקייטן קומען.
פארוואס פּיטהאָן דעפּענדענסי אינדזשעקשאַן האט זיכערהייט אימפליקאַציעס
ווען איר ארינשטעקן עקסטערנעם קאוד אדער קאנפיגוראציעס אין אייער אפליקאציע, עפנט איר אויף מעגליכע זיכערהייט גאפעס. דעפּענדענסי אינדזשעקשאַן אין פּיטהאָן העלפט סטרוקטורירן ווייכווארג ריין, אבער אן געהעריגע קאנטראלן קען עס אריינברענגען ערנסטע ריזיקעס.
פילע טימז נוצן פּיטהאָן דעפּענדענסי ינדזשעקשאַן צו פֿאַרבעסערן פֿלעקסיבילאַטי און טעסטינג, אָבער זיי פֿאַרגעסן אָפֿט די זיכערהייט זײַט. אויב איר פֿאַרשטייט נישט פֿולשטענדיק וואָס איז דעפּענדענסי ינדזשעקשאַן אין פּיטהאָן און ווי עס ווירקט אויף אייער ראַנטיים נאַטור, קענט איר אומאפיציעל אויסשטעלן אייער אַפּ צו שוואַכע אָדער נישט-פאַרטרויטע קאָמפּאָנענטן.
אַטאַקירער נוצן אָפט אויס דעם בלינדן פלעק. אין אפהענגיקייט צעמישעניש אטאקעס, זיי פאַרעפֿנטלעכן בייזוויליקע פּאַקאַדזשאַז צו עפֿנטלעכע רעפּאָזיטאָריעס מיט נעמען וואָס שטימען מיט אינערלעכע פּאַקאַדזשאַז. אויב אייער בילד סיסטעם וועריפֿיצירט נישט די מקור, קען עס אינסטאַלירן די אומרעכטע - געבן אַטאַקירער אַ דירעקטן וועג אין אייער סביבה.
סודות ליקאַדזש שטעלט פאר נאך א גרויסע ריזיקע. טימז אינדזשעקטירן מאנchmal API שליסלען, קרעדענשעלס, אדער טאָקענס דורך סביבה וועריאַבאַלן אדער קאָנפיג טעקעס. אָן סקאַנינג אדער סאַניטיזיישאַן, קענען די סודות ענדיגן אויסגעשטעלט אין לאָגס, מקור קאָנטראָל, אדער CI/CD וואָרקפלאָווס.
פאַקטישע וועלט בייַשפּיל: דעפּענדענסי צעמישונג
אין 2021, האט אן עטישער העקער ארויפגעלאדן פעקלעך צו PyPI וואס האבן אפגעשפיגלט אינערליכע נעמען גענוצט דורך גרויסע טעק קאמפאניס. ווייל געוויסע בויען סיסטעמען געגעבן פּריאָריטעט צו עפנטלעכע איבער פּריוואַטע פּאַקאַדזשאַז, די פאַלשע פּאַקאַדזשאַז זענען אינסטאַלירט און עקסעקוטעד אין טראַסטיד קאָרפּאָראַטיווע סביבות.
די אטאקע אונטערשטרייכט די וויכטיקייט פון קאָנטראָלירטע דעפּענדענסי סאָרסינג און וואַלידירן אַלע אינדזשעקטעד קאָמפּאָנענטן—אַרייַנגערעכנט סענסיטיווע קאָנפיגוראַציע ווערטן.
פאָרזעצן צו פֿאַרשטאַרקן אייער אַפּ זיכערהייט
דעפּענדענסי אינדזשעקשאַן איז נאָר איין שיכט פון פאַרטיידיקונג. ווילט איר באַשיצן אייערע אַפּליקאַציעס קעגן נאָך מער סכנות?
ווי צו זיכערן פּיטהאָן דעפּענדענסי ינדזשעקשאַן
דאָ איז ווי אַזוי צו סטרוקטורירן DI וואָרקפלאָוז וואָס מינאַמייז ריזיקירן.
1. אינדזשעקטירן נאָר טראַסטיד קאָמפּאָנענטן
פֿאַרמײַדן אײַנשפּריצן סערוויסעס אָדער מאָדולן פֿון נישט-וואַלידירטע קוועלער ווי באַניצער אינפּוטס, סביבה וועריאַבאַלן אָדער דינאַמישע לאָודערס. דעם פירער פֿון פּיטהאָן דעפּענדענסי ינדזשעקטאָר דערקלערט ווי אַזוי צו סטרוקטורירן DI זיכער ניצנדיק אַ קאַנטיינער-באַזירטן צוגאַנג וואָס ענפאָרסט קאָנטראָל.
2. שלאָס און פּין דעפּענדענסיעס
ניצן מכשירים ווי pip-tools, pipenv, אדער poetry צו פּינען גענויע ווערסיעס פון דיפּענדאַנסיז. שלאָס טעקעס פאַרהיטן דיין סיסטעם פון אַקסאַדענטאַל ריזאַלווינג צו בייזוויליק אָדער נייַערע פּאַקאַדזשאַז מיט אומבאַקאַנט וואַלנעראַביליטיז. איר קענט לערנען מער וועגן זיכער דיפּענדאַנסיז פאַרוואַלטונג און ווערסיע קאָנטראָל אין דעם פּיטהאָן. וויקי איבערבליק פון די דעפּענדענסי אינדזשעקשאַן מוסטער.
3. ניצן דעפּענדענסי אינדזשעקשאַן צו צענטראַליזירן קאָנטראָל
דורך אינדזשעקטן דיפּענדאַנסיז, קענט איר:
- אוידיט באַניץ אין איין אָרט
- טוישן אין זיכערע אייַנפּאַקערס פֿאַר ריזיקאַלישע באַדינונגען
- פאַלשע ריזיקאַלישע קאָמפּאָנענטן פֿאַר סטיידזשינג/טעסט
ווי מכשירים ווי Xygeni מאַכן דעפּענדענסי ינדזשעקשאַן אין פּיטהאָן זיכערער
ווען איר אימפלעמענטירט דעפּענדענסי אינדזשעקשאַן אין פּיטהאָן, ספּעציעל אין דינאַמישע אָדער פּלוגין-באַזירטע סיסטעמען, ווערט עס גרינגער צו אַקסאַדענטאַל אַרײַנפֿירן אַלטמאָדישע, שוואַכע אָדער נישט-פֿאַרטרויטע פּאַקאַדזשאַז. אָן געהעריקע וואַלידאַציע, קען אפילו אַ ריינע DI סטרוקטור עפֿענען זיכערהייט ריזיקעס.
צו מאַכן פּיטהאָן דעפּענדענסי ינדזשעקשאַן זיכער דורך דיזיין, דאַרפֿסטו פֿולע זעאונג אין דיין ווייכווארג צושטעל קייט. דאָס איז וואו מכשירים ווי קסיגעני'ס אַנאַליזאַטאָרן ווערן וויכטיק.
קסיגעני'ס פּיפּ אַנאַליזער
פֿאַר פּיטהאָן אַפּפּס, קסיגעני'ס פּיפּ אַנאַליזער עקסטראַקטירט דיין גאַנצע דעפּענדענסי גראַפיק ניצנדיק pipgrip און אנאליזן:
- אַלע דירעקטע און טראַנזיטיווע אָפּהענגיקייטן
- ווערסיעס, לייסענסעס, און מקור מעטאדאטן
- מעגלעכע וואַלנעראַביליטיז און עקספּלויטאַביליטי
אַפֿילו אויב pipgrip איז נישט אינסטאלירט, Xygeni לויפט די אנאליז אין א זיכערער, אפגעזונדערטער סביבה—וואס זיכערט גענויע רעזולטאטן אן צו שטערן אייער ארבעטס-פלוס.
אויב איר זענט ערנסט וועגן פֿאַרשטיין וואָס איז דעפּענדענסי ינדזשעקשאַן אין פּיטהאָן פֿון ביידע אַ פּלאַן און זיכערהייט פּערספּעקטיוו, צוזאַמען מיט קאָנטינויִערלעכע דעפּענדענסי סקאַנינג העלפֿט אײַך אידענטיפֿיצירן ריזיקעס איידער זיי דערגרייכן פּראָדוקציע.
אַמאָל סקאַנד, קענט איר:
- אידענטיפיצירן ריזיקאַלישע פּאַקאַדזשאַז וואָס ווערן אינדזשעקטעד דורך DI
- זעט וואו יעדער קאָמפּאָנענט ווערט גענוצט
- בלאקירן פראבלעמאטישע פעקלעך אין CI/CD
פּראַקטיש בייַשפּיל: DI טרעפֿט זיכער סקאַנינג
לאָמיר זאָגן אַז אייער פּלוגין מענעדזשער לאָודט מאָדולן פֿון אַ רעגיסטרי אָדער קאָנפֿיג:
כאָטש דאָס פּלאַן איז שטאַרק, קען עס אויך אַרײַנפֿירן ריזיקע. אַ לייזונג ווי Xygeni קען העלפֿן פֿאַרמינדערן דעם ריזיקע דורך:
- איר סקענט און וואַלידירט
external.unknown_pluginאיידער עס קומט בכלל צו פראדוקציע. - איר וועריפיצירט לייסענסעס צו פארמיידן GPL/AGPL לעגאלע פראבלעמען.
- איר ניצט EPSS סקאָרז צו פּרייאָריטיזירן פאַקטישע סכנות.
געשטיצטע עקאָסיסטעמען
קסיגעני באדעקט פיל מער ווי נאָר פּיטהאָן. אויב איר בויט מיקראָסערוויסעס אַריבער סטאַקס, אַנאַליזירט עס:
| יקאָוסיסטאַם | אנאליזירער געצייג | באַפֿעל געניצט |
|---|---|---|
| פּיטהאָן | פּיפּ אַנאַליזאַטאָר | pipgrip --tree --json |
| דזשאַוואַ (מעיוון) | מאַווען אַנאַליזער | mvn dependency:tree |
| Node.js | NPM אנאליזירער | yarn install, npm ci |
| . נעץ | דאָטנעט אַנאַליזער | dotnet restore |
| Go | גיי אנאליזירער | go mod graph |
| PHP | קאָמפּאָזיטאָר אַנאַליזאַטאָר | composer show |
| רובין | געמס אנאליזירער | איר נוצן Gemfile.lock |
געוויינטלעכע פּיטפאָלז ווען איר ניצט פּיטהאָן דעפּענדענסי ינדזשעקשאַן
אינדזשעקטירן עקסטערנע פּאַקאַדזשאַז אָן וואַלידאַציע
שטענדיק איבערקוקן פּעקלעך וואָס ווערן אינדזשעקטעד ביי ראַנטיים—ספּעציעל אויב זיי זענען דינאַמיש סאָורסעד אָדער ספּעסיפיצירט דורך באַניצער אינפוט. נישט וואַלידירן די קאָמפּאָנענטן קען אויסשטעלן אייער אַפּלאַקיישאַן צו סאַפּליי טשיין ריסקס.
איבערשפּרינגען וואַלנעראַביליטי און לייסאַנס טשעקס
דעפּענדענסיעס וואָס ווערן אריינגעבראַכט דורך אינדזשעקשאַן קענען אַרייַננעמען באַקאַנטע וואַלנעראַביליטיז אָדער נישט-קאָמפּאַטיבלע לייסאַנסיז. אינטעגרירן זיכערהייט סקאַנס אין דיין CI pipeline צו כאַפּן פּראָבלעמען איידער זיי דערגרייכן פּראָדוקציע.
האַרדקאָדירונג סודות אין קאָנפיגוראַציע טעקעס
פֿאַרמײַדט דורכגעבן קרעדענשעלס אָדער טאָוקענס דורך DI קאָנפֿיגס אָדער סביבה וועריאַבאַלן אָן זיכערהייטן. ניצט אויטאָמאַטישע סודות דעטעקציע מכשירים צו סקענען טעקעס און פֿאַרמײַדן אַקסאַדענטאַלע עקספּאָוזשער.
לעצטע געדאנקען: ניצן דעפּענדענסי אינדזשעקשאַן מיט זיכערהייט אין זינען
דעפּענדענסי אינדזשעקשאַן אין פּיטהאָן אָפפערט מער ווי נאָר ריינע אַרכיטעקטור—עס גיט אַ סטרוקטורירטן, אָדיטאַבלען וועג צו קאָנטראָלירן ווי און וואו פונדרויסנדיק קאָד ווערט איינגעפירט אין אייער אַפּליקאַציע. אין היינטיקן סביבה, וואו סאַפּליי טשיין וואַלנעראַביליטיז און בייזוויליגע פּאַקאַדזשאַז זענען פאַקטישע סכנות, ווערט יענער מדרגה פון קאָנטראָל אַ קריטישער זיכערהייט שוץ.
שכל וואָס איז דעפּענדענסי ינדזשעקשאַן אין פּיטהאָן איז דער ערשטער שריט צו מאכן אייערע אפליקאציעס נישט נאר מאדולאר, נאר אויך ווידערשטאנדספעאיק. ווען גענוצט ריכטיג, פּיטהאָן דעפּענדענסי ינדזשעקשאַן העלפט טימז אפגעזונדערן אפהענגיקייטן, רעדוצירן אטאקע סערפאַסיז, און פארפּשוטערן טעסטינג איבער סביבות.
דורך קאמבינירן דעם מוסטער מיט מכשירים וואָס סקענען דעפּענדענסיעס, דעטעקטירן וואַלנעראַביליטיז און אויטאָמאַטיזירן קאַמפּליאַנס טשעקס, קענען דעוועלאָפּמענט טימז זיכער סקיילן - אָן פאַרלאַנגזאַמען דעם מעלדונג ציקל.





