SRI Hash Generator cho Subresource Integrity
SRI hash generator này tạo ra hash integrity mà trình duyệt dùng để kiểm tra một script hoặc stylesheet tải từ CDN chưa bị can thiệp. Dán nội dung file, chọn thuật toán, rồi sao chép thẻ <script> hoặc <link> dán được ngay.
Công cụ dành cho lập trình viên front-end và web khi kéo thư viện từ CDN bên thứ ba và muốn có lớp bảo vệ Subresource Integrity (SRI). Thêm thuộc tính integrity nghĩa là trình duyệt sẽ chặn tài nguyên nếu hash của nó không khớp — bịt một kiểu tấn công chuỗi cung ứng phổ biến.
Cách tạo một SRI hash
Dán nội dung file
Sao chép toàn bộ nội dung của file JavaScript hoặc CSS bạn muốn bảo vệ vào ô Nội dung. Hash được tạo tự động ngay khi bạn gõ hoặc dán.
Chọn thuật toán
Chọn SHA-256, SHA-384 hoặc SHA-512. SHA-384 được chọn mặc định và là lựa chọn được khuyến nghị cho SRI.
Đặt loại thẻ và URL
Chọn script hoặc link làm Loại thẻ. Thêm URL tài nguyên tùy chọn — một liên kết .js hoặc .css sẽ tự nhận diện loại thẻ phù hợp cho bạn.
Sao chép kết quả
Sao chép riêng Hash Integrity, hoặc cả thẻ HTML hoàn chỉnh đã có sẵn thuộc tính integrity và crossorigin, rồi dán vào trang của bạn.
Tính năng
Nhiều thuật toán hash
Tạo SRI hash với SHA-256, SHA-384 hoặc SHA-512. SHA-384 là mặc định và là thuật toán được đặc tả SRI của W3C khuyến nghị.
Tự nhận diện loại thẻ
Nhập URL tài nguyên và công cụ chọn script cho file .js hoặc link cho file .css — hoặc bạn có thể đổi loại thẻ thủ công bất cứ lúc nào.
Thẻ HTML dùng ngay
Nhận thẻ hoàn chỉnh đã có sẵn thuộc tính integrity và crossorigin="anonymous", để bạn dán thẳng vào HTML của mình.
URL tài nguyên tùy chọn
Thêm URL CDN của tài nguyên và nó được đưa vào src hoặc href của thẻ được tạo, nên kết quả dùng được ngay như vốn có.
Sao chép một cú nhấp
Sao chép giá trị hash integrity hoặc cả thẻ HTML chỉ với một cú nhấp, kèm thông báo xác nhận nhanh trên màn hình mỗi lần.
Xử lý phía trình duyệt
Mọi việc băm đều chạy trong trình duyệt của bạn qua Web Crypto API. Nội dung file không bao giờ được gửi lên máy chủ, giữ riêng tư hoàn toàn.
Câu hỏi thường gặp
Subresource Integrity (SRI) là gì?
SRI là một tính năng bảo mật của trình duyệt giúp kiểm tra rằng các file tải từ nguồn bên ngoài, chẳng hạn CDN, chưa bị thay đổi. Bạn thêm một thuộc tính integrity chứa hash mong đợi của file vào thẻ <script> hoặc <link>; trình duyệt so sánh với file đã tải về và chặn tài nguyên nếu chúng không khớp.
Tạo SRI hash như thế nào?
Dán đúng nội dung của file JavaScript hoặc CSS vào ô Nội dung. Công cụ băm ngay lập tức bằng thuật toán bạn chọn và cho bạn cả hash integrity thô lẫn một thẻ HTML hoàn chỉnh để sao chép.
Nên dùng hash nào: SHA-256, SHA-384 hay SHA-512?
SHA-384 được W3C khuyến nghị và là thuật toán được dùng phổ biến nhất cho SRI, mang lại sự cân bằng tốt giữa bảo mật và hiệu năng. SHA-256 và SHA-512 cũng được mọi trình duyệt hiện đại hỗ trợ, nên dùng cái nào tùy dự án của bạn yêu cầu.
Có cần thuộc tính crossorigin không?
Có. crossorigin="anonymous" là bắt buộc để SRI hoạt động với tài nguyên từ một origin khác, chẳng hạn CDN. Thiếu nó thì trình duyệt không thể kiểm tra tính toàn vẹn của tài nguyên khác origin — đó là lý do thẻ được tạo đã kèm sẵn cho bạn.
Vì sao integrity bị lỗi không tải được file?
Nguyên nhân phổ biến nhất là file được phục vụ khác với nội dung bạn đã băm — chỉ cần một byte thay đổi cũng tạo ra hash khác, nên hãy tạo lại từ đúng file CDN. Thiếu thuộc tính crossorigin hoặc một CDN không gửi header Access-Control-Allow-Origin cũng làm việc kiểm tra thất bại. Hầu hết các CDN lớn (jsDelivr, cdnjs, unpkg) đều đã hỗ trợ CORS.
Tôi có thể thêm SRI cho một script CDN không?
Có — đó chính là trường hợp dùng chủ yếu. Tạo hash từ nội dung file CDN, dán URL tài nguyên vào, rồi sao chép thẻ đã làm sẵn. Đặc tả SRI cũng cho phép nhiều hash trong một thẻ, ngăn cách bằng dấu cách (ví dụ sha256-… sha384-…); công cụ này tạo một hash mỗi lần, bạn có thể tự ghép lại nếu muốn có hash dự phòng.
Chưa có bình luận nào. Hãy là người đầu tiên!