winjs-plugin-security
A plugin that provides security enhancements for WinJS projects, mainly used to generate SRI (Subresource Integrity) attributes.
功能特性
- 自动为 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 links 来说,结果为不加载其中的样式。
关于 SRI 的更多内容,可以查看 Subresource Integrity - MDN。
注意事项
- 此插件仅在生产构建时生效,开发环境会自动跳过
- 需要确保资源文件在构建输出目录中可访问
integrity属性必须与crossorigin属性配合使用才能正常工作
许可证
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-06 ---