[ PROMPT_NODE_27650 ]
javascript-jquery-web-frontend-security
[ SKILL_DOCUMENTATION ]
# jQuery 前端安全规范 (jQuery 4.0.x, 现代浏览器)
本文档旨在作为一份**安全规范**,支持:
1. **默认安全的代码生成**:用于新的基于 jQuery 的前端代码。
2. **安全审查/漏洞挖掘**:针对现有基于 jQuery 的代码(被动式“工作时发现问题”和主动式“扫描仓库并报告发现”)。
它特意编写为一系列**规范性要求**(“必须/应该/可以”)以及**审计规则**(不良模式是什么样,如何检测它们,以及如何修复/缓解它们)。
---
## 0) 安全性、边界和防滥用约束(必须遵守)
* 禁止请求、输出、记录或提交机密信息(API 密钥、密码、私钥、会话令牌、刷新令牌、CSRF 令牌、会话 Cookie)。
* 必须将浏览器视为攻击者控制的环境:
* 前端检查(UI 门控、“禁用按钮”、隐藏字段、客户端验证)绝不能被视为授权或安全边界。
* 即使前端是“正确”的,服务器端授权和验证也必须存在。
* 禁止通过禁用保护措施来“修复”安全问题(例如放宽 CSP 以允许 `unsafe-inline`、启用 JSONP “因为它能用”、添加广泛的 CORS、禁用清理机制、抑制安全检查)。
* 在审计期间必须提供基于证据的发现:引用文件路径、代码片段和相关配置值。
* 必须诚实对待不确定性:如果边缘(CDN/WAF/反向代理标头,如 CSP)可能存在某种保护措施,请报告为“在仓库中不可见;请在运行时/配置中验证”。
---
## 1) 操作模式
### 1.1 生成模式(默认)
当被要求编写新的 jQuery 代码或修改现有 jQuery 代码时:
* 必须遵循本规范中的每一项**必须**要求。
* 除非用户明确说明,否则应遵循每一项**应该**要求。
* 必须优先使用默认安全的模式:文本插入、DOM 节点构建、允许列表以及经过验证的清理库,而不是自定义转义。
* 必须避免引入新的风险点(HTML 字符串构建、动态脚本加载、JSONP、内联脚本/事件处理程序属性、不安全的 URL 分配、不安全的对象合并)。
### 1.2 被动审查模式(编辑时始终开启)
在任何使用 jQuery 的仓库中工作时(即使用户没有要求进行安全扫描):
* 必须“注意到”所触及/附近代码中违反本规范的行为。
* 应该在问题出现时提及,并提供简要说明 + 安全修复方案。