用途:这是一个安全反模式技能,面向生成或审查 JWT(JSON Web Token)相关代码的场景,帮助识别并规避 JWT 误用漏洞(CWE-287,严重级别高)。
主要能力:覆盖四类常见缺陷。一是算法混淆(none 算法攻击),库若接受令牌头中的任意算法,攻击者可改为 none 并去掉签名绕过校验;二是弱密钥,HS256 使用可预测或硬编码密钥易被暴力破解并伪造令牌;三是载荷含敏感数据,JWT 载荷仅 Base64Url 编码而非加密,放入 PII、密码等会泄露;四是缺少过期时间。技能给出 Python、JavaScript/Node.js、Java 的脆弱与安全写法对照。
必要用法:校验时显式指定允许算法,如 jwt.decode(token, secret_key, algorithms=["HS256", "RS256"]);Node.js 用 jwt.verify(token, SECRET, { algorithms: ['HS256'], maxAge: '1h' });Java 用 requireAlgorithm("HS256")。密钥从环境变量或密钥管理服务加载,HS256 至少 256 位(32 字符),生产环境优先非对称算法(RS256/ES256)。载荷只放 sub、iat、exp、role 等非敏感声明,始终包含 exp。
检测方式:用 rg 搜索不安全调用,如 jwt.decode.algorithms\s=\s*(None|null|[])、缺少 algorithms= 的 jwt.decode、verify.*false;搜索短于 32 字符的硬编码密钥;用 gitleaks/trufflehog 扫描泄露密钥;审查 jwt.encode/jwt.sign 附近是否含 ssn、password、credit_card 等字段及是否缺少 exp。
适用场景与限制:适用于代码生成与代码审查中的 JWT 安全加固。资料未提供该技能的安装命令、运行方式、收费与平台信息,暂未提供。