
Halo! Di posting terakhir, kami mulai melihat masalah penting keamanan di npm dan berbicara tentang tindakan apa yang digunakan perusahaan itu sendiri untuk mengidentifikasi dan mencegah ancaman. Kali ini saya ingin berbicara tentang alat dan pendekatan yang tersedia untuk Anda secara pribadi, dan yang sangat saya rekomendasikan agar semua pengembang menerapkan dalam praktik mereka.
Skrip instalasi
npm install (: preinstall, install/postinstall), . , . , , .
, :

: npm install malicious-package, evil.sh, unix-.
, , 2018eslint-scopeeslint-config-eslint, , .
, , , , , .
, npm npm, . , npm registry , , , , npm .
, , , , . , , .
, :
npm install suspicious-package --ignore-scripts
, ( .npmrc):
npm config set ignore-scripts true
, . , .

, , npm, npm install. , Docker-, . , npm root-; , . . : npm, .
: - , . , . npm.

: , . , npm .npmrc , .
npm - (, CI/CD), . , , read-only, . .
npm IP- (CIDR). IP ( IP) . , , (on-demand). , , .
.npmrc, (Git). NPM_TOKEN ( ).
--read-onlyโ , (. . , );--cidr=<CIDR>โ , IP. CIDR, IP. :--cidr=192.0.2.0/24.
, npm-, . npm, npm token list.
, npm adduser .npmrc . .
~/.npmrc :
//registry.npmjs.org/:_authToken=00000000-0000-0000-0000-000000000000
npm registry, .
, ~/.npmrc unix-! (, SSH), , . , . . , . SSH, EdDSA . , . : Ed25519 (EdDSA) RSA ( 2048 ) .

, , . . , , npm install packae-name: 404, โ .
npm , . , , , copy-and-paste.

, , :
- , . (16 );
- . ;
- ;
- , .
: . KeePass ( ). -, . -, , , . (., Google Drive DropBox), .
, , !
(MFA)

, . . : - , . - SMS- . , . . .
, npm -. : ยซ ยป ยซ ยป. ยซ ยป, . . , npm OTP npm adduser, - (, npm publish).
, npm 2FA, . : , QR-, -. , CLI :
npm profile enable-2fa auth-and-writes
โ ยซ ยป ()npm profile enable-2fa auth-only
โ ยซ ยป
CLI npm ( ), QR-. (OTP), , .
npm , , , .
, , 2FA npm profile disable-2fa, . , , npm (, ).

, npm publish, npm .
.gitCVS.svn.hg.lock-wscript.wafpickle-N.*.swp.DS_Store._*npm-debug.log.npmrcnode_modulesconfig.gypi*.origpackage-lock.json
- registry , , , . . npm - , , .
, files package.json. , ( glob), . , - .
, , files:
package.jsonREADMECHANGES,CHANGELOG,HISTORYLICENSE,LICENCENOTICE- ,
main
README, CHANGES, LICENSE NOTICE .
, .
, npm publish, --dry-run npm pack --dry-run. , , . --dry-run , , , .
, , npm-. โ .
, , , , . , .
- , , .
.