Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

WinJS plugin to provide support for security.

License

NotificationsYou must be signed in to change notification settings

winjs-dev/winjs-plugin-security

Repository files navigation

winjs-plugin-security

一个为 WinJS 项目提供安全增强功能的插件,主要用于生成 SRI(Subresource Integrity)属性。

npm versionlicensedownloads

功能特性

  • 自动为 HTML 文件中的<script><link> 标签生成 SRI 属性
  • 支持 SHA-256、SHA-384、SHA-512 哈希算法(可配置)
  • 自动添加crossorigin="anonymous" 属性以确保 SRI 正常工作
  • 仅在生产环境下生效,开发环境自动跳过

安装

pnpm add @winner-fed/plugin-security

使用方法

在你的.winrc.ts 配置文件中添加插件配置:

import{defineConfig}from'@winner-fed/winjs';exportdefaultdefineConfig({plugins:['@winner-fed/plugin-security'],security:{sri:true// 启用 SRI 功能},});

配置选项

sri

  • 类型:boolean | { algorithm: 'sha256' | 'sha384' | 'sha512' }
  • 默认值: 需要手动设置
  • 描述: 是否启用 SRI(子资源完整性)功能,以及可选的哈希算法配置

当设置为true{} 时,插件会:

  1. 扫描构建后的 HTML 文件
  2. 为所有带有src 属性的<script> 标签添加integrity 属性
  3. 为所有带有href 属性的<link> 标签添加integrity 属性
  4. 自动添加crossorigin="anonymous" 属性(如果不存在)

你也可以通过对象方式指定哈希算法:

security:{sri:{algorithm:'sha512'// 可选 'sha256' | 'sha384' | 'sha512',默认 'sha512'}}

示例

输入 HTML

<!DOCTYPE html><html><head><linkrel="stylesheet"href="/assets/app.css"></head><body><scriptsrc="/assets/app.js"></script></body></html>

输出 HTML(启用 SRI 后)

<!DOCTYPE html><html><head><linkrel="stylesheet"href="/assets/app.css"integrity="sha512-ABC123..."crossorigin="anonymous"></head><body><scriptsrc="/assets/app.js"integrity="sha512-XYZ789..."crossorigin="anonymous"></script></body></html>

安全说明

SRI(子资源完整性)是一种安全特性,允许浏览器验证获取的资源(例如从 CDN 获取的资源)没有被恶意修改。当浏览器加载资源时,会计算资源的哈希值并与integrity 属性中指定的哈希值进行比较。如果哈希值不匹配,浏览器将拒绝加载该资源。

对于<script> 标签来说,结果为拒绝执行其中的代码;对于 CSS links 来说,结果为不加载其中的样式。

关于 SRI 的更多内容,可以查看Subresource Integrity - MDN

注意事项

  1. 此插件仅在生产构建时生效,开发环境会自动跳过
  2. 需要确保资源文件在构建输出目录中可访问
  3. integrity 属性必须与crossorigin 属性配合使用才能正常工作

许可证

MIT

About

WinJS plugin to provide support for security.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors3

  •  
  •  
  •  

[8]ページ先頭

©2009-2025 Movatter.jp