winjs-plugin-security
Một plugin cung cấp tính năng tăng cường bảo mật cho dự án WinJS, chủ yếu dùng để tạo thuộc tính SRI (Subresource Integrity).
Tính năng
- Tự động tạo thuộc tính SRI cho các thẻ
vàtrong tệp HTML - Hỗ trợ các thuật toán băm SHA-256, SHA-384, SHA-512 (có thể cấu hình)
- Tự động thêm thuộc tính
crossorigin="anonymous"để đảm bảo SRI hoạt động bình thường - Chỉ hoạt động trong môi trường sản xuất, tự động bỏ qua trong môi trường phát triển
Cài đặt
pnpm add @winner-fed/plugin-security
Cách sử dụng
Thêm cấu hình plugin vào tệp cấu hình .winrc.ts của bạn:
import { defineConfig } from '@winner-fed/winjs';export default defineConfig({
plugins: ['@winner-fed/plugin-security'],
security: {
sri: true // 启用 SRI 功能
},
});
Tùy chọn cấu hình
sri
- Kiểu:
boolean | { algorithm: 'sha256' | 'sha384' | 'sha512' } - Giá trị mặc định: Cần thiết lập thủ công
- Mô tả: Bật hay tắt chức năng SRI (Toàn vẹn tài nguyên phụ), cùng tùy chọn cấu hình thuật toán băm
true hoặc {} thì plugin sẽ:- Quét các tệp HTML sau khi build
- Thêm thuộc tính
integritycho tất cả thẻcó thuộc tínhsrc - Thêm thuộc tính
integritycho tất cả thẻcó thuộc tínhhref - Tự động thêm thuộc tính
crossorigin="anonymous"(nếu chưa có)
security: {
sri: {
algorithm: 'sha512' // 可选 'sha256' | 'sha384' | 'sha512',默认 'sha512'
}
}示例
输入 HTML
Xuất HTML (sau khi bật SRI)
Hướng dẫn an toàn
SRI (Toàn vẹn tài nguyên phụ) là một tính năng bảo mật cho phép trình duyệt xác minh rằng tài nguyên được lấy (ví dụ tài nguyên lấy từ CDN) không bị sửa đổi độc hại. Khi trình duyệt tải tài nguyên, nó sẽ tính toán giá trị băm của tài nguyên và so sánh với giá trị băm được chỉ định trong thuộc tính integrity. Nếu giá trị băm không khớp, trình duyệt sẽ từ chối tải tài nguyên đó.
Đối với thẻ , kết quả là từ chối thực thi mã trong đó; đối với các liên kết CSS, kết quả là không tải các kiểu dáng bên trong.
Để biết thêm về SRI, bạn có thể xem Subresource Integrity - MDN.
Lưu ý
- Plugin này chỉ có hiệu lực khi build sản phẩm, môi trường phát triển sẽ tự động bỏ qua
- Cần đảm bảo các file tài nguyên có thể truy cập được trong thư mục xuất ra khi build
- Thuộc tính
integrityphải được sử dụng cùng với thuộc tínhcrossoriginđể hoạt động bình thường
Giấy phép
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-06 ---