winjs-plugin-security
Плагин, обеспечивающий расширенные функции безопасности для проектов WinJS, предназначенный в первую очередь для генерации атрибутов SRI (Subresource Integrity).
Особенности
- Автоматическая генерация атрибута SRI для тегов
ив HTML-файлах - Поддержка хеш-алгоритмов 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-файлы
- Добавляет атрибут
integrityко всем тегамс атрибутомsrc - Добавляет атрибут
integrityко всем тегамс атрибутомhref - Автоматически добавляет атрибут
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 ---