![ขั้นตอนแก้ไขเบื้องต้นเมื่อเจอช่องโหว่ใน Dependency ของ Nodejs](/content/images/size/w1120/format/webp/2024/03/how-to-fix-vulnerability-nodejs.webp)
ขั้นตอนแก้ไขเบื้องต้นเมื่อเจอช่องโหว่ใน Dependency ของ Nodejs
เมื่อเราใช้ trivy scan หาช่องโหว่ Dependency ใน Nodejs เจอแล้ว ให้ดูว่า Library ไหนที่โดน ดูว่าติดตั้ง version ไหน และดูว่ามันได้รับการแก้ไขที่ version ไหนหรือยัง? จากนั้นกดไปดู Link รายละเอียดของ Vulnerability เพิ่มเติมได้
![](https://snappytux.com/content/images/2024/03/nodejs-trivy.webp)
แล้วลองพิมพ์ npm audit
ตรวจสอบอีกรอบว่า Library ที่โดนเป็นยังไงบ้าง
![](https://snappytux.com/content/images/2024/03/npm-audit.webp)
ถ้ามีอันไหนบอกว่า fix available via npm audit fix
ก็ให้เราพิมพ์ npm audit fix
เพื่อมันแก้ไขไปก่อน
จากนั้นจะเหลือตัวที่เราต้องแก้ไขเอง ให้เอาชื่อ Library ไปค้นหาใน package-lock.json
ถ้ามันแสดงแบบนี้ คือมันติดตั้ง 3.43
"node_modules/@koa/cors": {
"version": "3.4.3",
"resolved": "https://registry.npmjs.org/@koa/cors/-/cors-3.4.3.tgz",
"integrity": "sha512-WPXQUaAeAMVaLTEFpoq3T2O1C+FstkjJnDQqy95Ck1UdILajsRhu6mhJ8H2f4NFPRBoCNN+qywTJfq/gGki5mw==",
"dependencies": {
"vary": "^1.1.2"
},
"engines": {
"node": ">= 8.0.0"
}
},
ให้เราหาต่อไปจนเจอ Library อยู่ใน dependencies ไหน ตามข้างล่างแสดงว่ามันอยู่กับ @strapi/strapi
"node_modules/@strapi/strapi": {
"version": "4.11.3",
"resolved": "https://registry.npmjs.org/@strapi/strapi/-/strapi-4.11.3.tgz",
"integrity": "sha512-nK+8mQpiIiq81Eyx8CO8/AZSigyl6j9q/tz6grF2NkDvZrG9eQh93ey1Cb+GxEf3ZPcZKkZtmdPamScXNUHvsw==",
"hasInstallScript": true,
"dependencies": {
"@koa/cors": "3.4.3",
เราก็ไปดูว่า @strapi/strapi
ใน npmjs.com มันเวอร์ชั่นอะไรแล้ว ให้เราอัพเดทตาม หรือไปแก้เลข version ใน package.json เลย เพราะว่าเมื่อเราทำอัพเดท @strapi/strapi
แล้ว โดยส่วนมากเจ้าตัว @koa/cors
ที่มันดึงมาด้วยก็จะอัพเดทตามให้ทันที
จากนั้นก็ไปแก้ code เราที่เกี่ยวข้องกับ Library นั้นๆ ว่าได้รับผลกระทบอะไรบ้าง มีการทำงานผิดพลาดอะไรไหม เพราะการอัพเดทบ้างครั้ง อาจจะต้องมีการแก้ไขการเขียนไปเป็นอีกรูปแบบ
อันนี้เป็นวิธีการอัพเดท Library ต่างๆ ที่เขาได้มีการแก้ไขช่องโหว่แล้ว แต่เราไม่ได้อัพเดทตามเขา... หากใครมีวิธีอื่นๆ ก็แชร์กันมาได้นะ 😄