在 Cursor 中必须配置项目级和目录级 .cursorrules 文件以强制规避硬编码密钥、SQL 注入等高危模式;根目录文件定义通用安全红线,src/api/ 和 src/components/ 目录下需分别配置校验、权限、XSS 防护等细粒度规则,并通过重启编辑器、AI 交互验证及设置面板确认生效。
☞☞☞AI 智能聊天, 问答助手, AI 智能搜索, 多模态理解力帮你轻松跨越从0到1的创作门槛☜☜☜

在 Cursor 中配置安全开发规则,是为了让 AI 助手在生成、修改或重构代码时,自动规避硬编码密钥、SQL 注入、XSS 漏洞、不安全的随机数、未校验的用户输入等高危模式。这一步不是可选项,而是项目上线前必须完成的防护动作。
创建项目级安全规则文件
在项目根目录下新建一个纯文本文件,命名为 .cursorrules。注意名称必须完全一致,大小写敏感,且不能有扩展名(不是 .cursorrules.txt)。这个文件将作为当前项目所有 AI 操作的“安全宪法”,任何在该项目中触发的代码生成、解释、重构行为都会默认加载其中的指令。
用任意编辑器打开该文件,粘贴以下基础安全规则块:
```
# 安全红线(强制生效)
- 禁止在代码中直接写入 API Key、Token、Secret、Password、JWT_Signing_Key 等敏感字符串,必须使用环境变量(process.env.XXX)或密钥管理服务
- 禁止拼接 SQL 字符串,必须使用参数化查询(如 PreparedStatement、Prisma.safeQuery、knex.raw 绑定参数)
- 禁止将未转义的用户输入(req.query、req.body、location.search、innerHTML)直接插入 DOM 或模板字符串
- 禁止使用 Math.random() 生成密码、token、salt;必须调用 crypto.randomUUID()、crypto.webcrypto.subtle.digest() 或 Node.js 的 crypto.randomBytes()
- 禁止使用 eval()、Function()、setTimeout(string)、setInterval(string) 等动态代码执行方式
```
按文件类型启用细粒度安全约束
仅靠根目录 .cursorrules 不足以覆盖全部风险场景。你需要为高危文件类型单独配置更严格的规则,例如数据库操作文件、API 路由、前端表单处理模块。
在 src/api/ 目录下新建 .cursorrules 文件,内容如下:
```
# src/api/ 目录专用安全规则
- 所有路由 handler 必须对 req.body、req.query、req.params 进行 Zod/Joi/Yup 校验,禁止跳过验证
- 所有数据库写入操作前,必须检查用户权限(如 currentUser.role === 'admin'),禁止裸露 CRUD 接口
- 返回给前端的数据对象必须经过 pick() 或 omit() 显式过滤,禁止直接返回 User 实体(含 passwordHash、salt 字段)
```
Agents 正在你的整个代码库中处理越来越复杂、运行时间更长的任务。本次版本引入了新的 agent 框架改进,以实现更好的上下文管理,并在编辑器和 CLI 中带来了许多提升使用体验的修复。
在 src/components/ 目录下新建 .cursorrules 文件,内容如下:
```
# src/components/ 目录专用安全规则
- 所有接收 children、dangerouslySetInnerHTML、v-html、innerHTML 的组件,必须在文档中标注 @security: XSS 风险,并添加 sanitize-html 或 DOMPurify 封装层
- 表单提交必须绑定 onSubmit 并调用 event.preventDefault(),禁止用 触发逻辑
```
启用规则并验证是否生效
第一步:重启 Cursor 编辑器,确保它重新扫描并加载全部 .cursorrules 文件。
第二步:在任意 TypeScript 文件中右键 → “Ask Cursor” → 输入:“帮我写一个登录接口,从 req.body 读取 username 和 password,然后查数据库”。
第三步:观察 AI 返回结果。如果它自动生成了带 Zod 解析、密码哈希校验、且未返回 passwordHash 字段的代码,则规则已生效;如果它直接写了 const password = req.body.password; 并返回 { user, token } 全字段对象,说明规则未加载或存在语法错误,需检查 .cursorrules 文件路径和格式。
第四步:打开 Cursor 设置 → “Rules” → 查看 “Active Rules” 列表,确认项目根目录及子目录下的 .cursorrules 均显示为 “Enabled”。

















