Rumah  >  Artikel  >  hujung hadapan web  >  Langkah-langkah untuk membetulkan kelemahan keselamatan pakej dalam projek JS anda

Langkah-langkah untuk membetulkan kelemahan keselamatan pakej dalam projek JS anda

Linda Hamilton
Linda Hamiltonasal
2024-10-26 07:51:03204semak imbas

Github menghantar makluman tetap kepada anda apabila kelemahan keselamatan dikesan dalam kalangan pakej anda yang dipasang atau kebergantungannya. Saya pernah cuba membiarkan dependabot membetulkannya untuk saya. Namun, separuh masa saya tidak dapat menggabungkan PR yang telah dijana untuk saya. Akibatnya, pelanggaran itu dibiarkan tanpa pakaian, yang tidak baik. Dalam kes saya, saya menggunakan pnpm, saya rasa ia adalah sama dengan npm.

Saya terjumpa artikel Niraj Chauhan's hari ini dan ia membawa saya ke cara menyelesaikannya menggunakan terminal.

Langkah:

  • Anda mendapat makluman dependabot daripada Github:

Steps to fix package security vulnerabilities in your JS project

  • Saya tahu, nama pakej dalam tangkapan skrin di atas tidak sepadan dengan artikel yang lain. Tetapi ini mengenai langkah-langkah, anda faham maksudnya.
  • Navigasi ke projek dalam mesin anda dan jalankan audit pnpm. Anda harus melihat butiran tentang kelemahan:

Steps to fix package security vulnerabilities in your JS project

  • Dalam bahagian laluan anda harus melihat apa yang menyebabkan perkara ini. Dalam kes saya, ia nampaknya "bersarang kebergantungan" (bergantungan kebergantungan).

  • Anda boleh menjalankan pnpm kenapa NAME_OF_THE_EXTENSION untuk mengesahkan perkara di atas. Dalam kes saya, saya mendapat ini apabila menjalankannya pada kelemahan pertama saya: pnpm why netmask

Steps to fix package security vulnerabilities in your JS project

  • Anda boleh cuba menjalankan pembetulan audit pnpm tetapi ia tidak pernah berkesan untuk saya.

  • Buka package.json anda dan kemas kini versi pakej yang menyebabkan ini - dalam kes saya mailgun-js. Anda boleh menjalankan paparan pnpm versi NAME_OF_THE_PACKAGE untuk melihat semua versi atau maklumat pnpm versi NAME_PACKAGE untuk mengetahui versi stabil terkini.

Jika ia berbeza, edit fail package.json anda dengan versi yang anda perlukan dan jalankan pnpm i sekali lagi. Selepas itu anda menjalankan audit pnpm sekali lagi untuk mengesahkan bahawa kelemahan telah hilang. Jika masih ada, mulakan semula atau teruskan membaca.

  • Dalam kes saya, versi stabil terbaharu ialah versi yang telah saya pasang, jadi saya perlu mengambil pendekatan lain.

  • Kami boleh memaksa pnpm memasang versi tertentu kebergantungan bersarang. Dokumen pnpm ada di sini dan anda melakukannya seperti itu dalam fail package.json anda:

Steps to fix package security vulnerabilities in your JS project

  • Saya mendapat ralat tentang versi yang saya cuba tolak, jadi saya menulis yang terbaharu dalam fail package.json saya:

Steps to fix package security vulnerabilities in your JS project

Steps to fix package security vulnerabilities in your JS project

  • Jalankan pnpm i dan hari bahagia, kelemahan untuk pakej itu tidak ada lagi.

Edit 25/10: mengikut urutan Stackoverflow ini, kedua-dua Github dependabot dan pnpm suapan audit daripada pangkalan data yang sama, jadi anda tidak kehilangan kelemahan tetapi membetulkan perkara dengan cara ini dan bukannya aliran kerja dependabot. Juga terdapat catatan blog ini.

Atas ialah kandungan terperinci Langkah-langkah untuk membetulkan kelemahan keselamatan pakej dalam projek JS anda. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn