winjs-plugin-security
یک افزونه برای پروژههای WinJS که قابلیتهای امنیتی را افزایش میدهد و عمدتاً برای تولید ویژگی SRI (یکپارچگی زیرمنبع) استفاده میشود.
ویژگیها
- به طور خودکار ویژگی 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 ساخته شده را اسکن میکند
- به تمام تگهای
که ویژگیsrcدارند، ویژگیintegrityاضافه میکند - به تمام تگهای
که ویژگیhrefدارند، ویژگیintegrityاضافه میکند - به طور خودکار ویژگی
crossorigin="anonymous"را اضافه میکند (در صورت عدم وجود)
security: {
sri: {
algorithm: 'sha512' // 可选 'sha256' | 'sha384' | 'sha512',默认 'sha512'
}
}示例
输入 HTML
خروجی HTML (پس از فعالسازی SRI)
توضیحات ایمنی
SRI (یکپارچگی زیرمنبع) یک ویژگی امنیتی است که به مرورگر اجازه میدهد اطمینان حاصل کند که منابع دریافتشده (مانند منابع دریافتشده از CDN) به صورت مخرب تغییر داده نشدهاند. هنگامی که مرورگر یک منبع را بارگذاری میکند، مقدار هش منبع را محاسبه کرده و با مقدار هش مشخصشده در ویژگی integrity مقایسه میکند. اگر مقدار هش مطابقت نداشته باشد، مرورگر بارگذاری آن منبع را رد میکند.
برای تگ ، نتیجه این خواهد بود که اجرای کد داخل آن رد میشود؛ برای لینکهای CSS، نتیجه این است که استایلهای درون آن بارگذاری نمیشوند.
برای اطلاعات بیشتر درباره SRI میتوانید به یکپارچگی زیرمنبع - MDN مراجعه کنید.
نکات مهم
- این افزونه فقط در زمان ساخت نسخه تولیدی فعال است و در محیط توسعه به طور خودکار رد میشود
- لازم است اطمینان حاصل کنید که فایلهای منبع در پوشه خروجی ساخت قابل دسترسی باشند
- ویژگی
integrityباید همراه با ویژگیcrossoriginاستفاده شود تا به درستی کار کند
مجوز
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-06 ---