winjs-plugin-security
ปลั๊กอินที่ช่วยเพิ่มความปลอดภัยให้กับโปรเจกต์ WinJS โดยเน้นการสร้างคุณสมบัติ SRI (Subresource Integrity)
คุณสมบัติเด่น
- สร้างคุณสมบัติ SRI ให้กับแท็ก
และในไฟล์ HTML โดยอัตโนมัติ - รองรับอัลกอริทึมแฮช SHA-256, SHA-384, SHA-512 (สามารถกำหนดเองได้)
- เพิ่มแอตทริบิวต์
crossorigin="anonymous"อัตโนมัติเพื่อให้ SRI ทำงานได้ถูกต้อง - ทำงานเฉพาะในโหมด production เท่านั้น โหมดพัฒนา (development) จะถูกข้ามไปโดยอัตโนมัติ
การติดตั้ง
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 (Subresource Integrity) หรือไม่ และสามารถกำหนดอัลกอริทึมแฮชได้
true หรือ {} ปลั๊กอินจะ:- สแกนไฟล์ HTML ที่ถูกสร้างขึ้นหลังการ build
- เพิ่มแอตทริบิวต์
integrityให้กับแท็กที่มีแอตทริบิวต์srcทุกแท็ก - เพิ่มแอตทริบิวต์
integrityให้กับแท็กที่มีแอตทริบิวต์hrefทุกแท็ก - เพิ่มแอตทริบิวต์
crossorigin="anonymous"โดยอัตโนมัติ (ถ้ายังไม่มี)
security: {
sri: {
algorithm: 'sha512' // 可选 'sha256' | 'sha384' | 'sha512',默认 'sha512'
}
}示例
输入 HTML
เอาต์พุต HTML (หลังจากเปิดใช้งาน SRI)
คำแนะนำด้านความปลอดภัย
SRI (Subresource Integrity) เป็นคุณสมบัติด้านความปลอดภัยที่อนุญาตให้เบราว์เซอร์ตรวจสอบความถูกต้องของทรัพยากรที่ได้รับมา (เช่น ทรัพยากรจาก CDN) ว่าไม่ได้ถูกแก้ไขโดยประสงค์ร้าย เมื่อเบราว์เซอร์โหลดทรัพยากร จะคำนวณค่าแฮชของทรัพยากรและเปรียบเทียบกับค่าแฮชที่ระบุในแอตทริบิวต์ integrity หากค่าแฮชไม่ตรงกัน เบราว์เซอร์จะปฏิเสธการโหลดทรัพยากรนั้น
สำหรับแท็ก ผลลัพธ์คือจะปฏิเสธการรันโค้ดภายในนั้น สำหรับลิงก์ CSS ผลลัพธ์คือจะไม่โหลดสไตล์ภายในนั้น
หากต้องการข้อมูลเพิ่มเติมเกี่ยวกับ SRI สามารถดูได้ที่ Subresource Integrity - MDN
ข้อควรระวัง
- ปลั๊กอินนี้จะมีผลเฉพาะขณะ build ผลิตเท่านั้น ในสภาพแวดล้อมการพัฒนาจะถูกข้ามโดยอัตโนมัติ
- ต้องแน่ใจว่าไฟล์ทรัพยากรสามารถเข้าถึงได้ในไดเรกทอรีเอาต์พุตของการ build
- แอตทริบิวต์
integrityต้องใช้ร่วมกับcrossoriginจึงจะทำงานได้อย่างถูกต้อง
ใบอนุญาต
MIT
--- Tranlated By Open Ai Tx | Last indexed: 2025-08-06 ---