关于 124-java-secure-coding
面向 Java 项目的安全编码技能,指导审查和加固常见漏洞。提供分领域的正反代码示例,并要求修改前编译、修改后完整验证。
主要功能
- 01输入验证与注入防护
- 02密码学与密钥管理
- 03安全异常处理与输出编码
- 04反序列化防护
- 05编译后修改并完整验证
适用场景
- 01审查 Java 输入验证和注入风险
- 02改进服务中的异常处理
- 03加固密码、密钥和反序列化处理
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ jabrena/ plinth --skill 124-java-secure-coding安装后在 Claude Code 中输入/124-java-secure-coding确认已加载。
附带文件references/124-java-secure-coding.md
详细介绍
Java 安全编码指南
识别并应用 Java 安全编码实践,以减少漏洞、保护敏感数据,并强化应用行为,抵御常见攻击手段。
本技能涵盖哪些内容?
- 输入验证:类型、长度、格式和范围检查
- 通过
PreparedStatement和参数化 API 防御 SQL/OS/LDAP 注入 - 尽量缩小攻击面:遵循最小权限原则,移除未使用的功能
- 强加密:使用 BCrypt/Argon2 处理密码,使用 AES-GCM 加密,使用数字签名;避免使用已弃用的密码算法(MD5、SHA-1、DES)
- 安全的异常处理:在内部记录诊断详情,仅向客户端显示通用消息
- 密钥管理:从环境变量或密钥管理器中加载凭据——绝不硬编码
- 安全反序列化:严格使用允许列表,优先使用显式 DTO,而非 Java 原生序列化
- 对输出进行编码,防止渲染内容中的 XSS
范围: 参考文档按示例(良好/不良代码模式)组织,涵盖各个核心领域。根据适用示例应用建议。
约束
应用任何安全编码更改之前,请确保项目可以编译。如果编译失败,请立即停止——解决问题之前不要继续。完成改进后,运行完整验证。
- 强制要求:应用任何更改之前,运行
./mvnw compile或mvn compile - 安全要求:如果编译失败,请立即停止——项目恢复到有效状态之前不要继续
- 验证:应用改进后,运行
./mvnw clean verify或mvn clean verify - 应用前:阅读参考文档,了解每种安全编码模式的详细正反示例、约束和防护措施
何时使用此技能
- 审查 Java 代码的安全编码情况
- 查找 Java 代码中的输入验证风险
- 审查 Java 代码中的注入漏洞
- 改进 Java 服务的安全错误处理
- 强化 Java 代码,抵御常见安全缺陷
工作流
- 在进行安全编码更改之前编译项目
运行 ./mvnw compile 或 mvn compile;如果编译失败,请立即停止。
- 阅读安全编码参考文档并评估风险
阅读 references/124-java-secure-coding.md,识别适用的漏洞和加固机会。
- 应用安全编码改进
针对输入验证、加密、密钥、反序列化和输出编码,实施选定的防护措施。
- 通过完整构建进行验证
应用改进后,运行 ./mvnw clean verify 或 mvn clean verify。
参考资料
详细指南、示例和约束请参阅 references/124-java-secure-coding.md。
评论
支持 Markdown