Công cụ này làm gì
Trình duyệt của bạn tải trực tiếp tệp JavaScript hoặc CSS từ địa chỉ mạng phân phối nội dung mà bạn dán, băm toàn bộ nội dung tệp bằng Web Crypto theo ba thuật toán SHA-256, SHA-384 và SHA-512, mã hoá kết quả sang base64, rồi ghép sẵn thẻ script hoặc thẻ link đầy đủ thuộc tính integrity và crossorigin để bạn dán thẳng vào mã nguồn.
Lúc nào nên ghim nội dung tệp
Khi nhúng thư viện từ unpkg, jsDelivr hay cdnjs vào một trang công khai. Khi trang có biểu mẫu thanh toán hoặc biểu mẫu đăng nhập, nơi một tệp bị thay đổi âm thầm đồng nghĩa với mất dữ liệu người dùng. Khi đơn vị kiểm định bảo mật yêu cầu chứng minh các tài nguyên bên thứ ba đều được ghim nội dung.
Chọn thuật toán nào
SHA-384 là mức thường dùng, cân bằng giữa độ dài chuỗi phải dán vào HTML và mức an toàn. Cơ chế rất đơn giản: trình duyệt tải tệp về, tự băm lại, so với chuỗi bạn khai; lệch một byte là tệp bị chặn không thực thi, trang thà mất tính năng còn hơn chạy mã lạ.
Chỗ hay làm hỏng thuộc tính integrity
Chuỗi băm gắn chặt vào đúng một phiên bản tệp, nên dùng địa chỉ kiểu latest sẽ hỏng ngay lần đầu nhà cung cấp cập nhật; luôn ghim số phiên bản cụ thể. Thiếu crossorigin bằng anonymous thì trình duyệt không có quyền đọc nội dung để kiểm tra và sẽ chặn. Có những tệp trả nội dung khác nhau tuỳ trình duyệt gọi tới, điển hình là tệp CSS của dịch vụ phông chữ, loại đó không dùng được cơ chế này. Nếu nhà cung cấp không mở CORS thì chính trình duyệt bạn cũng không tải được và công cụ sẽ báo lỗi.