winjs-plugin-security
一個為 WinJS 專案提供安全性增強功能的插件,主要用於生成 SRI(子資源完整性)屬性。
功能特性
- 自動為 HTML 檔案中的
與標籤生成 SRI 屬性 - 支援 SHA-256、SHA-384、SHA-512 雜湊演算法(可設定)
- 自動添加
crossorigin="anonymous"屬性以確保 SRI 正常運作 - 僅於生產環境下生效,開發環境自動略過
安裝
pnpm add @winner-fed/plugin-security
使用方法
在你的 .winrc.ts 配置文件中添加插件設定:
import { defineConfig } from '@winner-fed/winjs';export default defineConfig({
plugins: ['@winner-fed/plugin-security'],
security: {
sri: true // 启用 SRI 功能
},
});
配置選項
sri
- 類型:
boolean | { algorithm: 'sha256' | 'sha384' | 'sha512' } - 預設值: 需要手動設定
- 說明: 是否啟用 SRI(子資源完整性)功能,以及可選的雜湊演算法設定
true 或 {} 時,外掛會:- 掃描建構後的 HTML 檔案
- 為所有帶有
src屬性的標籤添加integrity屬性 - 為所有帶有
href屬性的標籤添加integrity屬性 - 自動添加
crossorigin="anonymous"屬性(如不存在時)
security: {
sri: {
algorithm: 'sha512' // 可选 'sha256' | 'sha384' | 'sha512',默认 'sha512'
}
}示例
输入 HTML
輸出 HTML(啟用 SRI 後)
安全說明
SRI(子資源完整性)是一種安全特性,允許瀏覽器驗證取得的資源(例如從 CDN 取得的資源)沒有被惡意修改。當瀏覽器載入資源時,會計算資源的雜湊值並與 integrity 屬性中指定的雜湊值進行比對。如果雜湊值不相符,瀏覽器將拒絕載入該資源。
對於 標籤來說,結果為拒絕執行其中的程式碼;對於 CSS 連結來說,結果為不載入其中的樣式。
關於 SRI 的更多內容,可以參考 Subresource Integrity - MDN。
注意事項
- 此插件僅在生產環境建置時生效,開發環境會自動略過
- 需要確保資源檔案在建置輸出目錄中可存取
integrity屬性必須與crossorigin屬性搭配使用才能正常運作
授權條款
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-06 ---