Chuyển đến nội dung chính

Cài plugin an toàn

Một plugin là mã chạy bên trong harness của bạn — kiểm duyệt package và patch của nó trước khi cài.

Cài một plugin cũng là một quyết định tin cậy như thêm bất kỳ dependency bên thứ ba nào: mã của package chạy với quyền truy cập của harness của bạn vào session, sandbox và storage. Danh mục xác minh rằng một package khai báo manifest dsh.bundle — nó không xem xét mã. Hãy coi danh mục là nơi khám phá, không phải là một lời đảm bảo bảo mật, và kiểm duyệt một package trước khi nó vào một profile mà bạn dựa vào.

Tin nguồn, rồi mới tin nội dung

Chỉ cài từ những nguồn bạn đã tin: một nhà phát hành bạn biết, một repository bạn nhận ra, hoặc một package được bảo trì công khai một thời gian. Sau đó kiểm tra nội dung — một tên package có thể bị chiếm dụng hoặc giả mạo, nên riêng tên không chứng minh được gì.

Kiểm tra trước khi cài

Bắt đầu từ metadata:

npm view <package-name>

Nó hiển thị description, version, license, repository và keywords mà không cài bất kỳ thứ gì. Sau đó kéo đúng tarball mà registry sẽ cài (npm pack <package-name>) và giải nén để đọc hai thứ quan trọng: cordis.patch.yml, nơi khai báo các dòng plugin mà package chèn hoặc ghi đè, và module entry mà nó tham chiếu, tức mã thực sự chạy. Patch thường nhỏ và dễ đọc; module mới là thứ bạn thực sự đang tin.

Kiểm tra repository

Trang chi tiết của mục liên kết repository hoặc mirror. Hãy xác nhận nó thuộc về nhà phát hành bạn mong đợi, và trường repository trên npm khớp với điều đó. Một package có metadata trỏ tới nơi không liên quan, hoặc có lịch sử repository không khớp với câu chuyện của nó, là một dấu hiệu đỏ.

Thử trong một profile nháp

Cài vào một profile thử riêng trước profile thật của bạn:

dsh plugin --profile trial add <package-name>

Rồi xác nhận layer đã áp:

dsh --profile trial --dump-config

Nếu thiếu layer, package không có dsh.bundle và được cài như một dependency thường — nó không đóng góp cấu hình nào (xem Cài plugin đầu tiên của bạn).

Gỡ khi xong

dsh plugin --profile trial remove <package-name>

Gỡ sẽ bỏ cả dependency lẫn layer, nên một profile thử rất dễ dọn dẹp. Khi bạn hài lòng với package, hãy cài nó vào profile bạn thực sự dùng.

Cập nhật lần cuối 2026-08-22