Ketika saya menjalankannya npm install
, tertulis found 33 vulnerabilities (2 low, 31 moderate)
run `npm audit fix` to fix them, or `npm audit` for details
.
Namun, npm audit fix
keluaranup to date in 11s
fixed 0 of 33 vulnerabilities in 24653 scanned packages
33 vulnerabilities required manual review and could not be updated
Apakah itu review
berarti itu tidak seharusnya diperbaiki oleh pengguna?
Ketika saya menjalankannya npm audit
memberi saya daftar tabel, mirip dengan ini:
┌───────────────┬──────────────────────────────────────────────────────────────┐
│ Low │ Prototype Pollution │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Package │ lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Patched in │ >=4.17.5 │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Dependency of │ browser-sync [dev] │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ Path │ browser-sync > easy-extender > lodash │
├───────────────┼──────────────────────────────────────────────────────────────┤
│ More info │ https://nodesecurity.io/advisories/577 │
└───────────────┴──────────────────────────────────────────────────────────────┘
Dalam contoh ini bagian remediasi dari halaman tertaut mengatakan Update to version 4.17.5 or later.
. Namun, /node_modules/browser-sync/package.json
ada garis-garisnya:
"devDependencies": {
"lodash-cli": "4.17.5",
}
dan tidak ada lagi dependensi lodash. Jadi seharusnya sudah v4.17.5. Saya juga memeriksa /node_modules/lodash/lodash.json
mana yang memiliki var VERSION = '4.17.10';
garis. Di /node_modules/lodash/package.json
sana ada baris-baris ini:
"_from": "lodash@^4.17.4",
"_id": "[email protected]",
Saya yakin bahwa versi yang ditampilkan di "_id", bukan "_from", jadi versinya benar tetapi kerentanan masih muncul di daftar audit.
Saya masih baru di node.js dan pesan-pesan itu sangat membingungkan saya. Apakah ada cara untuk memperbaikinya secara manual atau menghapus pesan-pesan itu, saya tidak bisa berbuat apa-apa?
Jawaban:
lodash-cli
indevDependencies
tidak memengaruhi carabrowser-sync
kerja dalam proyek Anda,devDependencies
diabaikan ketika sebuah paket diinstal sebagai dependensi.Apa yang
audit
dikatakan laporan itu adalaheasy-extender
yang memilikilodash
ketergantungan:Itu tergantung pada Lodash 3 , sementara masalah telah diperbaiki di Lodash 4. Masalahnya dapat diperbaiki dengan forking
easy-extender
, memperbaruinya dan menginstalnya daripada paket dari NPM public registry. Tetapi tidak ada masalah nyata dengan ketergantungan ini.audit
pentingnya laporan harus dievaluasi secara manual. Meskipun ketergantungan bertingkat memiliki risiko keamanan, ini tidak berarti bahwa fitur yang memperkenalkan risiko ini digunakan. Ini juga tidak berarti bahwa meskipun digunakan, ini menimbulkan risiko nyata karena cara penggunaannya.browser-sync
adalah alat pengembangan yang tidak digunakan dalam produksi, tidak banyak skenario di mana kerentanannya dapat dieksploitasi. Dan Prototipe Polusi sama sekali bukan kerentanan, hanya pemberitahuan bahwa sebuah paket tidak mengikuti praktik yang baik, itu dapat diabaikan.Secara umum, ini adalah cara untuk memperbaiki kerentanan yang dilaporkan:
Sering kali diharapkan Anda tidak akan maju setelah pemeriksaan kewarasan.
patch-package
dapat membantu untuk menambal dependensi bertingkat di tempat tetapi ini tidak akan memengaruhiaudit
laporan.sumber
node_modules
, jadi apakah forking dan fixing hanyalah cara untuk menghilangkannya? Dan sebagai pengguna baru saya tidak memiliki kemampuan untuk melakukan itu? Haruskah saya mengeluarkan pengembang paket tentang mereka?audit
mulut), jawabannya menjawab itu. Orang hidup tanpanpm audit
entah bagaimana. Kemungkinan mereka menyebabkan masalah keamanan nyata pada aplikasi sangat rendah, namun tanpa mengetahui apa itu dan bagaimana penggunaannya di aplikasi Anda, saya tidak dapat menjaminnya.Jika Anda benar-benar yakin ingin melewatkan audit, Anda dapat melakukannya dengan menambahkan --no-audit
sumber
'npm audit fix' akan meningkatkan versi ketergantungan di package.json yang dapat menyebabkan kerusakan kode. Jadi cara yang lebih baik adalah membuka package-lock.json dan mengupdate versi dependensi / subdependensi ke versi yang diperlukan. Pertahankan package-lock.json di repositori.
Terkadang kerentanan berasal dari paket dev, Dalam hal ini abaikan kerentanan tersebut karena kerentanan tersebut tidak diambil dalam produksi.
sumber
Sebagian besar masalah yang terjadi di sistem saya adalah karena paket npm. Saya mencoba,
Anda tidak perlu menginstal lagi.
Jalankan program lagi. Itu berhasil untuk saya.
sumber