Bỏ qua menu, vào nội dung chính
Quay lại
Subresource Integrity

SRI Hash Generator

Fetch JS/CSS từ CDN → tính SHA-256/384/512 base64 → output thẻ <script> / <link> có thuộc tính integrity. Chống supply-chain attack.

Cần URL CORS-enabled. CDN phổ biến: cdn.jsdelivr.net · unpkg.com · cdnjs.cloudflare.com

Thuộc tính integrity và cách nó chặn mã lạ

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.

Tệp được tải và băm ngay tại máy bạn. Tệp được chính trình duyệt bạn tải về từ mạng phân phối nội dung và băm ngay tại máy bằng Web Crypto; máy chủ ALODEV không tham gia và không nhìn thấy địa chỉ bạn nhập.

Cần bản riêng cho doanh nghiệp bạn?

Mọi công cụ trong Lab đều do đội ngũ Alodev tự xây. Chúng tôi có thể xây phiên bản riêng - gắn thương hiệu, nối dữ liệu nội bộ, thêm tính năng theo quy trình của bạn.