winjs-plugin-security
Um plugin que fornece funcionalidades de segurança aprimoradas para projetos WinJS, principalmente para geração de atributos SRI (Subresource Integrity).
Funcionalidades
- Geração automática do atributo SRI para as tags
eem arquivos HTML - Suporta algoritmos de hash SHA-256, SHA-384, SHA-512 (configurável)
- Adiciona automaticamente o atributo
crossorigin="anonymous"para garantir o funcionamento correto do SRI - Ativo somente em ambiente de produção, sendo automaticamente ignorado em ambiente de desenvolvimento
Instalação
pnpm add @winner-fed/plugin-security
Como usar
Adicione a configuração do plugin no seu arquivo de configuração .winrc.ts:
import { defineConfig } from '@winner-fed/winjs';export default defineConfig({
plugins: ['@winner-fed/plugin-security'],
security: {
sri: true // 启用 SRI 功能
},
});
Opções de Configuração
sri
- Tipo:
boolean | { algorithm: 'sha256' | 'sha384' | 'sha512' } - Valor padrão: Precisa ser configurado manualmente
- Descrição: Indica se o recurso SRI (Subresource Integrity) está habilitado e permite configurar opcionalmente o algoritmo de hash
true ou {}, o plugin irá:- Escanear os arquivos HTML gerados após a build
- Adicionar o atributo
integritya todas as tagsque possuam o atributosrc - Adicionar o atributo
integritya todas as tagsque possuam o atributohref - Adicionar automaticamente o atributo
crossorigin="anonymous"(caso não exista)
security: {
sri: {
algorithm: 'sha512' // 可选 'sha256' | 'sha384' | 'sha512',默认 'sha512'
}
}示例
输入 HTML
Saída HTML (após ativar SRI)
Instruções de Segurança
SRI (Integridade de Sub-recurso) é um recurso de segurança que permite ao navegador verificar se os recursos obtidos (por exemplo, recursos carregados de um CDN) não foram modificados maliciosamente. Quando o navegador carrega um recurso, ele calcula o hash desse recurso e o compara com o hash especificado no atributo integrity. Se os hashes não coincidirem, o navegador recusará o carregamento desse recurso.
Para tags , isso resulta na recusa de execução do código; para links de CSS, o resultado é a não aplicação dos estilos contidos.
Para saber mais sobre SRI, consulte Subresource Integrity - MDN.
Observações
- Este plugin só é efetivo em builds de produção, o ambiente de desenvolvimento é automaticamente ignorado
- É necessário garantir que os arquivos de recursos estejam acessíveis no diretório de saída da build
- O atributo
integritydeve ser usado junto com o atributocrossoriginpara funcionar corretamente
Licença
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-06 ---