[ PROMPT_NODE_27656 ]
javascript-typescript-vue-web-frontend-security
[ SKILL_DOCUMENTATION ]
# Vue.js Web 安全规范 (Vue 3.x, TypeScript/JavaScript, 常用工具: Vite)
本文档旨在作为一份**安全规范**,支持:
1. **默认安全的代码生成**:用于新的 Vue 代码。
2. **安全审查/漏洞挖掘**:针对现有 Vue 代码(被动式“工作时发现问题”和主动式“扫描仓库并报告发现”)。
本文档特意编写为一系列**规范性要求**(“必须/应该/可以”)以及**审计规则**(不良模式是什么样、如何检测它们、以及如何修复/缓解它们)。
---
## 0) 安全性、边界和防滥用约束(必须遵守)
* 禁止请求、输出、记录或提交机密信息(API 密钥、密码、私钥、会话 Cookie、身份验证令牌)。
* 禁止通过禁用保护措施来“修复”安全性(例如,削弱 CSP,开启不安全的模板编译,将 `v-html` 用作快捷方式,绕过后端身份验证,或“直接将令牌存储在 localStorage 中”)。
* 必须在审计期间提供**基于证据的发现**:引用文件路径、代码片段和证明该声明的配置值。
* 必须诚实地对待不确定性:如果边缘(CDN、反向代理、WAF、服务器标头)可能存在保护措施,请将其报告为“在仓库中不可见;验证运行时/基础设施配置”。
* 必须记住前端信任模型:**任何发送到浏览器的代码对于攻击者都是可读和可修改的**。机密信息和“安全强制执行”不能依赖于仅前端的逻辑。
---
## 1) 操作模式
### 1.1 生成模式(默认)
当被要求编写新的 Vue 代码或修改现有代码时:
* 必须遵循本规范中的每一项**必须**要求。
* 应该遵循每一项**应该**要求,除非用户明确表示否则。
* 必须优先使用默认安全的框架特性和经过验证的库,而不是自定义安全代码。
* 必须避免引入新的风险汇点(运行时模板编译、`v-html` / `innerHTML`、不安全的 URL 导航、动态脚本注入等)。([Vue.js][1])
### 1.2 被动审查模式(编辑时始终开启)
在 Vue 仓库的任何地方工作时(即使用户没有要求进行安全扫描):
* 必须“注意到”所触及/附近代码中违反本规范的行为。
* 应该在问题出现时提及,并提供简要说明 + 安全修复方案。
### 1.3 主动审计模式(显式扫描请求)
当用户要求“扫描”、“审计”或“挖掘漏洞”时:
* 必须系统地搜索代码库中违反本规范的行为。
* 必须以 s 格式输出发现结果