Skip to content

Security: YanYuCloudCube/YYC3-Family-AI

Security

SECURITY.md

๐Ÿ”’ YYCยณ Family-AI ๅฎ‰ๅ…จ็ญ–็•ฅ

YanYuCloudCube ่จ€ๅฏ่ฑก้™ | ่ฏญๆžขๆœชๆฅ


๐Ÿ“‹ ๆ–‡ๆกฃไฟกๆฏ

ๅฑžๆ€ง ๅ€ผ
ๆ–‡ๆกฃๅ็งฐ YYCยณ Family-AI ๅฎ‰ๅ…จ็ญ–็•ฅ
็‰ˆๆœฌ v1.0.0
ๆ›ดๆ–ฐๆ—ฅๆœŸ 2026-04-04
้€‚็”จ่Œƒๅ›ด YYC3-Family-AI ๅผ€ๆบ้กน็›ฎ
้กน็›ฎๅฎšไฝ ๅผ€ๆบๆœฌๅœฐไผ˜ๅ…ˆๅผ€ๅ‘ๅทฅๅ…ท

๐ŸŽฏ ไธ€ใ€ๅฎ‰ๅ…จ็†ๅฟต๏ผšๆœฌๅœฐไผ˜ๅ…ˆ๏ผŒ้š็ง่‡ณไธŠ

YYCยณ Family-AI ๆ˜ฏไธ€ไธชๅฎŒๅ…จๆœฌๅœฐ่ฟ่กŒ็š„ๅผ€ๆบๅทฅๅ…ท๏ผŒๆˆ‘ไปฌ็š„ๅฎ‰ๅ…จ่ฎพ่ฎกๅ›ด็ป•ไปฅไธ‹ๆ ธๅฟƒๅŽŸๅˆ™๏ผš

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                 YYCยณ ๅฎ‰ๅ…จ่ฎพ่ฎกๅ“ฒๅญฆ                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                             โ”‚
โ”‚  ๐Ÿ”’ ๆ•ฐๆฎไธปๆƒ                                                โ”‚
โ”‚  โ”œโ”€ ๆ‰€ๆœ‰ๆ•ฐๆฎๅญ˜ๅ‚จๅœจ็”จๆˆทๆœฌๅœฐ่ฎพๅค‡                             โ”‚
โ”‚  โ”œโ”€ ๆ— ้œ€ไบ‘็ซฏ่ดฆๆˆทๆˆ–่ฎค่ฏ                                     โ”‚
โ”‚  โ”œโ”€ ๆ— ๆ•ฐๆฎไธŠไผ ่‡ณ็ฌฌไธ‰ๆ–นๆœๅŠกๅ™จ                               โ”‚
โ”‚  โ””โ”€ ็”จๆˆทๅฎŒๅ…จๆŽŒๆŽง่‡ชๅทฑ็š„ๆ•ฐๆฎ                                 โ”‚
โ”‚                                                             โ”‚
โ”‚  ๐Ÿ›ก๏ธ ้š็งไฟๆŠค                                                โ”‚
โ”‚  โ”œ- ้›ถ่ฟฝ่ธช: ๆ— ็”จๆˆท่กŒไธบๅˆ†ๆž                                 โ”‚
โ”‚  โ”œ- ้›ถๆ”ถ้›†: ๆ— ไธชไบบไฟกๆฏๆ”ถ้›†                                 โ”‚
โ”‚  โ”œ- ้›ถๅนฟๅ‘Š: ๆ— ไปปไฝ•ๅฝขๅผ็š„ๅนฟๅ‘Š                               โ”‚
โ”‚  โ””- ้›ถไพ่ต–: ๆ— ็ฌฌไธ‰ๆ–น SDK ่ฟฝ่ธช                              โ”‚
โ”‚                                                             โ”‚
โ”‚  ๐Ÿ” ๅŠ ๅฏ†ๅญ˜ๅ‚จ                                                โ”‚
โ”‚  โ”œ- API ๅฏ†้’ฅๆœฌๅœฐๅŠ ๅฏ†ๅญ˜ๅ‚จ                                   โ”‚
โ”‚  โ”œ- ่Šๅคฉ่ฎฐๅฝ•ๅฏ้€‰ๅŠ ๅฏ†                                       โ”‚
โ”‚  โ”œ- ๆ•ๆ„Ÿๆ•ฐๆฎ่‡ชๅŠจ่„ฑๆ•                                       โ”‚
โ”‚  โ””- ไฝฟ็”จ AES-256-GCM ๅŠ ๅฏ†็ฎ—ๆณ•                             โ”‚
โ”‚                                                             โ”‚
โ”‚  ๐Ÿ“– ้€ๆ˜Žๅผ€ๆบ                                                โ”‚
โ”‚  โ”œ- ๆ‰€ๆœ‰ไปฃ็ ๅ…ฌๅผ€ๅฏๅฎก่ฎก                                     โ”‚
โ”‚  โ”œ- ๅฎ‰ๅ…จๅฎž็Žฐๅฏ้ชŒ่ฏ                                         โ”‚
โ”‚  โ”œ- ็คพๅŒบๅ…ฑๅŒๅฎกๆŸฅ                                           โ”‚
โ”‚  โ””- ๅฟซ้€Ÿๅ“ๅบ”ๅฎ‰ๅ…จ้—ฎ้ข˜                                       โ”‚
โ”‚                                                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“Š ไบŒใ€ๅฎ‰ๅ…จๆžถๆž„ๆ€ป่งˆ

2.1 ๆœฌๅœฐๅญ˜ๅ‚จๅฎ‰ๅ…จๆจกๅž‹

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                    ๆต่งˆๅ™จๆฒ™็ฎฑ็Žฏๅขƒ                         โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚                  ๅบ”็”จๅฑ‚ (React)                     โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                        โ”‚                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚              ๅŠ ๅฏ†ๅฑ‚ (CryptoService)                โ”‚ โ”‚
โ”‚  โ”‚   โ€ข AES-256-GCM ๅŠ ๅฏ†/่งฃๅฏ†                          โ”‚ โ”‚
โ”‚  โ”‚   โ€ข PBKDF2 ๅฏ†้’ฅๆดพ็”Ÿ                                โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ฌโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                        โ”‚                                  โ”‚
โ”‚  โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ–ผโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ” โ”‚
โ”‚  โ”‚              ๅญ˜ๅ‚จๅฑ‚ (Browser Storage)             โ”‚ โ”‚
โ”‚  โ”‚   โ€ข IndexedDB (ๆ–‡ไปถ/ๅކๅฒ/ๅคงๆ•ฐๆฎ)                   โ”‚ โ”‚
โ”‚  โ”‚   โ€ข localStorage (้…็ฝฎ/่ฎพ็ฝฎ/ๅฐๆ•ฐๆฎ)               โ”‚ โ”‚
โ”‚  โ”‚   โ€ข sessionStorage (ไธดๆ—ถ/API Keys)                 โ”‚ โ”‚
โ”‚  โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜ โ”‚
โ”‚                                                             โ”‚
โ”‚  โš ๏ธ ้‡่ฆ: ๆ‰€ๆœ‰ๆ•ฐๆฎๅ‡ๅœจๆต่งˆๅ™จๆฒ™็ฎฑๅ†…๏ผŒๆ— ๆณ•่ขซๅค–้ƒจ่ฎฟ้—ฎ      โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

2.2 ๆ•ฐๆฎๅˆ†็ฑปไธŽไฟๆŠค็บงๅˆซ

ๆ•ฐๆฎ็ฑปๅž‹ ๅญ˜ๅ‚จไฝ็ฝฎ ๅŠ ๅฏ†ๆ–นๅผ ไฟ็•™็ญ–็•ฅ ็”จๆˆทๆŽงๅˆถ
API ๅฏ†้’ฅ sessionStorage AES-256 ไผš่ฏ็ป“ๆŸๆธ…้™ค โœ… ๅฏๅˆ ้™ค
็”จๆˆท้…็ฝฎ localStorage ๆ˜Žๆ–‡ ๆฐธไน…ไฟ็•™ โœ… ๅฏๅฏผๅ‡บ/ๅˆ ้™ค
ๆ–‡ไปถๅ†…ๅฎน IndexedDB ๅฏ้€‰ๅŠ ๅฏ† ๆฐธไน…ไฟ็•™ โœ… ๅฏๅˆ ้™ค
่Šๅคฉๅކๅฒ IndexedDB ๅฏ้€‰ๅŠ ๅฏ† ๆฐธไน…ไฟ็•™ โœ… ๅฏๅˆ ้™ค
ไธป้ข˜่ฎพ็ฝฎ localStorage ๆ˜Žๆ–‡ ๆฐธไน…ไฟ็•™ โœ… ๅฏ้‡็ฝฎ
้ขๆฟๅธƒๅฑ€ localStorage ๆ˜Žๆ–‡ ๆฐธไน…ไฟ็•™ โœ… ๅฏ้‡็ฝฎ

๐Ÿ” ไธ‰ใ€ๅทฒๅฎžๆ–ฝ็š„ๅฎ‰ๅ…จๆŽชๆ–ฝ

3.1 ๆ•ฐๆฎๅŠ ๅฏ†ๆœๅŠก

ๆ–‡ไปถ: CryptoService.ts

// ๅทฒๅฎž็Žฐ็š„ๅŠ ๅฏ†ๅŠŸ่ƒฝ
const cryptoService = {
  // ๅŠ ๅฏ†็ฎ—ๆณ•
  algorithm: 'AES-256-GCM',
  
  // ๅฏ†้’ฅๆดพ็”Ÿ
  keyDerivation: 'PBKDF2',
  iterations: 100000,
  
  // ๆ”ฏๆŒ็š„ๆ“ไฝœ
  encrypt: async (data: string, password: string) => string,
  decrypt: async (encryptedData: string, password: string) => string,
  
  // ๅ“ˆๅธŒๅ‡ฝๆ•ฐ
  hash: async (data: string): Promise<string>,
  
  // ้šๆœบๆ•ฐ็”Ÿๆˆ
  generateRandomKey: (): string,
  generateIV: (): Uint8Array
};

3.2 XSS ้˜ฒๆŠค

ๆŠ€ๆœฏ: DOMPurify

// ๆ‰€ๆœ‰็”จๆˆท่พ“ๅ…ฅ้ƒฝ็ป่ฟ‡ๆถˆๆฏ’ๅค„็†
import DOMPurify from 'dompurify';

// ๅœจๆธฒๆŸ“ๅ‰ๆธ…็† HTML ๅ†…ๅฎน
const cleanHTML = DOMPurify.sanitize(dirtyHTML, {
  ALLOWED_TAGS: ['b', 'i', 'u', 'code', 'pre'],
  ALLOWED_ATTR: []
});

้˜ฒๆŠค่Œƒๅ›ด:

  • โœ… AI ๅ“ๅบ”ๅ†…ๅฎนๆธฒๆŸ“
  • โœ… Markdown ่ฝฌๆข่พ“ๅ‡บ
  • โœ… ๅฏŒๆ–‡ๆœฌ็ผ–่พ‘ๅ™จๅ†…ๅฎน
  • โœ… ็”จๆˆท่พ“ๅ…ฅๆ˜พ็คบ

3.3 API ๅฏ†้’ฅ็ฎก็†

// API ๅฏ†้’ฅๅฎ‰ๅ…จ็ญ–็•ฅ
const apiKeyPolicy = {
  storage: {
    location: 'sessionStorage',  // ไผš่ฏ็ป“ๆŸๆ—ถ่‡ชๅŠจๆธ…้™ค
    encryption: true,            // ๅญ˜ๅ‚จๅ‰ๅŠ ๅฏ†
    masking: true                 // ๆ˜พ็คบๆ—ถ่„ฑๆ• (****1234)
  },
  
  display: {
    maskPattern: /^(.{4}).*(.{4})$/,  // ๆ˜พ็คบ้ฆ–ๅฐพ4ไฝ
    copyProtection: true,               // ็ฆๆญขๅคๅˆถๅฎŒๆ•ดๅฏ†้’ฅ
    autoHide: true                      // 5็ง’ๅŽ่‡ชๅŠจ้š่—
  },
  
  transmission: {
    onlyToLLMProviders: true,           // ไป…ๅ‘้€่‡ณ LLM Provider
    noLogging: true,                    // ไธ่ฎฐๅฝ•ๅฎŒๆ•ดๅฏ†้’ฅ
    noLocalStorage: true                // ไธๆŒไน…ๅŒ–ๅˆฐ localStorage
  }
};

3.4 Content Security Policy (CSP)

ๅฝ“ๅ‰็Šถๆ€: โš ๏ธ ๅพ…้…็ฝฎ (P1 ไปปๅŠก)

ๆŽจ่้…็ฝฎ:

<meta http-equiv="Content-Security-Policy"
      content="default-src 'self';
               script-src 'self' 'unsafe-inline' 'unsafe-eval';
               style-src 'self' 'unsafe-inline' https://fonts.googleapis.com;
               font-src 'self' https://fonts.gstatic.com;
               img-src 'self' data: https:;
               connect-src 'self' https://api.openai.com https://api.zhipuai.cn;">

๐Ÿšจ ๅ››ใ€ๅฎ‰ๅ…จๆœ€ไฝณๅฎž่ทต๏ผˆ็”จๆˆทๆŒ‡ๅ—๏ผ‰

4.1 ไฟๆŠคๆ‚จ็š„ๆ•ฐๆฎ

โœ… ๆŽจ่ๅšๆณ•

ๅšๆณ• ่ฏดๆ˜Ž
ไฝฟ็”จๅผบๅฏ†็  ๅฆ‚ๅฏ็”จ่Šๅคฉ่ฎฐๅฝ•ๅŠ ๅฏ†๏ผŒไฝฟ็”จๅคๆ‚ๅฏ†็ 
ๅฎšๆœŸๅค‡ไปฝๆ•ฐๆฎ ไฝฟ็”จ่ฎพ็ฝฎไธญ็š„"ๅฏผๅ…ฅ/ๅฏผๅ‡บ"ๅŠŸ่ƒฝๅค‡ไปฝ้…็ฝฎ
ๅŠๆ—ถๆธ…้™คๆ•ๆ„Ÿๆ•ฐๆฎ ๅ…ณ้—ญๆต่งˆๅ™จๅŽ sessionStorage ่‡ชๅŠจๆธ…้™ค
ไฟๆŒๆต่งˆๅ™จๆ›ดๆ–ฐ ไฝฟ็”จๆœ€ๆ–ฐ็‰ˆๆต่งˆๅ™จ่Žทๅพ—ๆœ€ไฝณๅฎ‰ๅ…จไฟๆŠค
ไฝฟ็”จ้š็งๆจกๅผ ๆ•ๆ„Ÿๆ“ไฝœๆ—ถๅฏไฝฟ็”จๆต่งˆๅ™จๆ— ็—•ๆจกๅผ

โŒ ๅบ”้ฟๅ…็š„่กŒไธบ

่กŒไธบ ้ฃŽ้™ฉ
ๅœจๅ…ฌๅ…ฑ็”ต่„‘ไธŠไฟๅญ˜ API ๅฏ†้’ฅ ๅฏ†้’ฅๅฏ่ƒฝๆณ„้œฒ
ๅˆ†ไบซๅŒ…ๅซไธชไบบๆ•ฐๆฎ็š„้…็ฝฎๆ–‡ไปถ ้š็งๆณ„้œฒ้ฃŽ้™ฉ
็ฆ็”จๆต่งˆๅ™จๅฎ‰ๅ…จ่ฎพ็ฝฎ ้™ไฝŽๆ•ดไฝ“ๅฎ‰ๅ…จๆ€ง
ไฝฟ็”จๆฅๆบไธๆ˜Ž็š„่‡ชๅฎšไน‰ๆ’ไปถ ๅฏ่ƒฝๅŒ…ๅซๆถๆ„ไปฃ็ 

4.2 API ๅฏ†้’ฅๅฎ‰ๅ…จ

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚                  API ๅฏ†้’ฅๅฎ‰ๅ…จๆŒ‡ๅ—                          โ”‚
โ”œโ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”ค
โ”‚                                                             โ”‚
โ”‚  1๏ธโƒฃ ๅฏ†้’ฅ่Žทๅ–                                              โ”‚
โ”‚     โ€ข ไป…ไปŽๅฎ˜ๆ–นๆธ ้“่Žทๅ– API Key                            โ”‚
โ”‚     โ€ข ไธบ YYCยณ ๅˆ›ๅปบไธ“็”จ็š„ API Key                           โ”‚
โ”‚     โ€ข ่ฎพ็ฝฎ้€‚ๅฝ“็š„ไฝฟ็”จ้™้ขๅ’Œๆƒ้™                             โ”‚
โ”‚                                                             โ”‚
โ”‚  2๏ธโƒฃ ๅฏ†้’ฅๅญ˜ๅ‚จ                                              โ”‚
โ”‚     โ€ข YYCยณ ้ป˜่ฎคๅญ˜ๅ‚จๅœจ sessionStorage (ไผš่ฏ็บง)             โ”‚
โ”‚     โ€ข ๅ…ณ้—ญๆต่งˆๅ™จๅŽ่‡ชๅŠจๆธ…้™ค                                 โ”‚
โ”‚     โ€ข ไธไผšไธŠไผ ่‡ณไปปไฝ•ๆœๅŠกๅ™จ                                 โ”‚
โ”‚                                                             โ”‚
โ”‚  3๏ธโƒฃ ๅฏ†้’ฅๆ˜พ็คบ                                              โ”‚
โ”‚     โ€ข UI ไธญไป…ๆ˜พ็คบ่„ฑๆ•ๅŽ็š„ๅฏ†้’ฅ (****1234)                  โ”‚
โ”‚     โ€ข ๅคๅˆถๆ—ถไป…ๅคๅˆถๅฎŒๆ•ดๅฏ†้’ฅ (้œ€็กฎ่ฎค)                       โ”‚
โ”‚     โ€ข 5็ง’ๅŽ่‡ชๅŠจ้š่—                                       โ”‚
โ”‚                                                             โ”‚
โ”‚  4๏ธโƒฃ ๅฏ†้’ฅ่ฝฎๆข                                              โ”‚
โ”‚     โ€ข ๅฎšๆœŸๆ›ดๆข API Key                                      โ”‚
โ”‚     โ€ข ๅฆ‚ๆ€€็–‘ๆณ„้œฒ๏ผŒ็ซ‹ๅณๅœจ Provider ๅŽๅฐๆ’ค้”€                 โ”‚
โ”‚     โ€ข ๅœจ YYCยณ ่ฎพ็ฝฎไธญๆ›ดๆ–ฐไธบๆ–ฐๅฏ†้’ฅ                           โ”‚
โ”‚                                                             โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ› ไบ”ใ€ๆŠฅๅ‘Šๅฎ‰ๅ…จ้—ฎ้ข˜

5.1 ๅฎ‰ๅ…จๆผๆดžๆŠฅๅ‘Šๆต็จ‹

ๅฆ‚ๆžœๆ‚จๅ‘็Žฐๅฎ‰ๅ…จๆผๆดž๏ผŒ่ฏทๆŒ‰็…งไปฅไธ‹ๆญฅ้ชคๆŠฅๅ‘Š๏ผš

Step 1: ไธ่ฆๅ…ฌๅผ€ๆŠซ้œฒ

โš ๏ธ ่ฏทๅ‹ฟๅœจ GitHub Issues ๅ…ฌๅผ€่ฎจ่ฎบๅฎ‰ๅ…จๆผๆดž

Step 2: ็งๅฏ†ๆŠฅๅ‘Š

้€š่ฟ‡ไปฅไธ‹ๆ–นๅผ็งๅฏ†ๆŠฅๅ‘Š๏ผš

Step 3: ๆŠฅๅ‘Šๅ†…ๅฎน่ฏทๅŒ…ๅซ

ไฟกๆฏ้กน ่ฏดๆ˜Ž
ๆผๆดžๆ่ฟฐ ๆธ…ๆ™ฐๆ่ฟฐๆผๆดžๅŠๅ…ถๅฝฑๅ“
ๅค็Žฐๆญฅ้ชค ่ฏฆ็ป†็š„้‡็Žฐๆญฅ้ชค
ๅฝฑๅ“่Œƒๅ›ด ๅ—ๅฝฑๅ“็š„็‰ˆๆœฌๅ’ŒๅŠŸ่ƒฝ
ๅปบ่ฎฎไฟฎๅค ๅฆ‚ๆœ‰๏ผŒๆไพ›ไฟฎๅคๅปบ่ฎฎ
่”็ณปๆ–นๅผ ็”จไบŽ่ทŸ่ฟ›็š„่”็ณปๆ–นๅผ

Step 4: ๅ“ๅบ”ๆ—ถ้—ดๆ‰ฟ่ฏบ

ๆ—ถ้—ด ๅŠจไฝœ
24ๅฐๆ—ถๅ†… ็กฎ่ฎคๆ”ถๅˆฐๆŠฅๅ‘Š
48ๅฐๆ—ถๅ†… ๅˆๆญฅ่ฏ„ไผฐๅ’Œๅˆ†็ฑป
7ๅคฉๅ†… ๆไพ›ไฟฎๅคๆ–นๆกˆๆˆ–ๆ—ถ้—ด่กจ
ไฟฎๅคๅŽ ่‡ด่ฐขๅนถๅฏ้€‰ๅ…ฌๅผ€ๆŠซ้œฒ

5.2 ๅฎ‰ๅ…จๅฅ–ๅŠฑ

่™ฝ็„ถๆˆ‘ไปฌ็›ฎๅ‰ๆฒกๆœ‰ๆญฃๅผ็š„ Bug Bounty ่ฎกๅˆ’๏ผŒไฝ†ๆˆ‘ไปฌไผš๏ผš

  • ๐Ÿ† ๅœจๅฎ‰ๅ…จๅ…ฌๅ‘Šไธญ่‡ด่ฐขๆŠฅๅ‘Š่€…
  • ๐Ÿ“ข ๅฏ้€‰็š„ๅ…ฌๅผ€่‡ด่ฐข๏ผˆ็ปๆ‚จๅŒๆ„๏ผ‰
  • ๐ŸŽ–๏ธ ่ดก็Œฎ่€…ๅๅ•ๆ”ถๅฝ•

๐Ÿ“‹ ๅ…ญใ€ๅฎ‰ๅ…จๆฃ€ๆŸฅๆธ…ๅ•

6.1 ๅผ€ๅ‘่€…ๅฎ‰ๅ…จๆฃ€ๆŸฅๆธ…ๅ•

ๅœจๆไบคไปฃ็ ๅ‰๏ผŒ่ฏท็กฎไฟ๏ผš

  • ไธๅŒ…ๅซ็กฌ็ผ–็ ็š„ๅฏ†้’ฅๆˆ–ๅ‡ญๆฎ
  • ็”จๆˆท่พ“ๅ…ฅ็ป่ฟ‡้€‚ๅฝ“็š„ๆถˆๆฏ’ๅ’Œ้ชŒ่ฏ
  • ไธไฝฟ็”จ eval() ๆˆ–ๅ…ถไป–ๅฑ้™ฉๅ‡ฝๆ•ฐ
  • ไธๅผ•ๅ…ฅๆœ‰ๅทฒ็Ÿฅๆผๆดž็š„ไพ่ต–
  • ๆ•ๆ„Ÿๆ“ไฝœ้œ€่ฆ็”จๆˆทๆ˜Ž็กฎ็กฎ่ฎค
  • ้”™่ฏฏไฟกๆฏไธๆณ„้œฒ็ณป็ปŸๅ†…้ƒจ็ป†่Š‚
  • ๅค–้ƒจ้“พๆŽฅไฝฟ็”จ rel="noopener noreferrer"

6.2 ไพ่ต–ๅฎ‰ๅ…จ

ๅทฅๅ…ท: pnpm overrides + npm audit

// package.json - ๅทฒ้…็ฝฎ็š„ๅฎ‰ๅ…จ่ฆ†็›–
"pnpm": {
  "overrides": {
    "ws": ">=8.17.1",        // WebSocket ๅฎ‰ๅ…จ็‰ˆๆœฌ
    "tar-fs": ">=2.1.4",     // ๆ–‡ไปถ่งฃๅŽ‹ๅฎ‰ๅ…จ
    "tmp": ">=0.2.3",         // ไธดๆ—ถๆ–‡ไปถๅฎ‰ๅ…จ
    "dompurify": ">=3.3.2"    // XSS ้˜ฒๆŠค
  }
}

ๅฎšๆœŸ่ฟ่กŒ:

# ๆฃ€ๆŸฅไพ่ต–ๆผๆดž
pnpm audit

# ๆ›ดๆ–ฐไพ่ต–
pnpm update

๐Ÿ”„ ไธƒใ€ๅฎ‰ๅ…จๆ›ดๆ–ฐๆ—ฅๅฟ—

ๆ—ฅๆœŸ ็‰ˆๆœฌ ๆ›ดๆ–ฐๅ†…ๅฎน
2026-04-04 v1.0.0 ๅˆๅง‹ๅฎ‰ๅ…จ็ญ–็•ฅๆ–‡ๆกฃๅ‘ๅธƒ

๐Ÿ“š ๅ…ซใ€็›ธๅ…ณ่ต„ๆบ

่ต„ๆบ ้“พๆŽฅ
OWASP Top 10 https://owasp.org/www-project-top-ten/
MDN Web Security https://developer.mozilla.org/zh-CN/docs/Web/Security
CSP ๆŒ‡ๅ— https://content-security-policy.com/
DOMPurify ๆ–‡ๆกฃ https://github.com/cure53/DOMPurify
Web Crypto API https://developer.mozilla.org/zh-CN/docs/Web/API/Web_Crypto_API

๐Ÿ™ ไนใ€่”็ณปๆˆ‘ไปฌ

ๅฎ‰ๅ…จ็›ธๅ…ณ้—ฎ้ข˜: security@0379.email

ไธ€่ˆฌ้—ฎ้ข˜: GitHub Issues

็คพๅŒบ่ฎจ่ฎบ: GitHub Discussions


ๆ–‡ๆกฃ็‰ˆๆœฌ: v1.0.0 ๆœ€ๅŽๆ›ดๆ–ฐ: 2026-04-04 ็ปดๆŠค่€…: YanYuCloudCube Team ่ฎธๅฏ่ฏ: MIT

There aren't any published security advisories