Bỏ qua đến nội dung chính

Gotchas around hooks

📖 Nội dung bài học

Bạn có thể thấy sau khi chạy lệnh npm run dev có hai file settings.json trong thư mục .claude. Để tôi giải thích điều gì đang xảy ra.

Tài liệu Claude Code liệt kê một số khuyến nghị liên quan đến bảo mật hooks:

Một trong những khuyến nghị là dùng đường dẫn tuyệt đối (thay vì đường dẫn tương đối) cho các script. Điều này giúp giảm thiểu các cuộc tấn công chặn đường dẫncài cắm nhị phân.

Khuyến nghị này cũng khiến việc chia sẻ file settings.json trở nên khó khăn hơn nhiều. Lý do rất đơn giản: đường dẫn tuyệt đối đến bất kỳ script hook nào trên máy của bạn có thể sẽ khác với đường dẫn tuyệt đối trên máy của tôi, chỉ vì chúng ta có thể đặt project trong các thư mục riêng biệt.

Để giải quyết vấn đề này, project của chúng ta có một file settings.example.json. Bên trong, các tham chiếu script chứa một placeholder $PWD. Khi chúng ta chạy npm run setup, một số dependencies được cài đặt, nhưng nó cũng chạy một script init-claude.js được đặt bên trong thư mục scripts. Script này sẽ thay thế các placeholder $PWD bằng đường dẫn tuyệt đối đến project trên máy của bạn, sao chép file settings.example.json và đổi tên thành settings.local.json.

Script này cho phép chúng ta chia sẻ file settings.json nhưng vẫn dùng các đường dẫn tuyệt đối được khuyến nghị!

🔁 Bài học liên quan

📚 Nguồn & ghi nhận

Bài học có hữu ích không?

Góp ý / Báo lỗiPhát hiện sai sót hoặc có ý tưởng cải thiện?