examples/
├── vulnerable/ # 漏洞代码示例
│ ├── SqlInjectionVulnerable.java
│ ├── XssVulnerable.java
│ └── ...
└── secure/ # 安全代码示例
├── SqlInjectionSecure.java
├── XssSecure.java
└── ...
| 类型 | 命名格式 | 示例 |
|---|---|---|
| 漏洞代码 | {Issue}Vulnerable.java |
SqlInjectionVulnerable.java |
| 安全代码 | {Issue}Secure.java |
SqlInjectionSecure.java |
代码应该是可编译的,包含必要的:
package com.example.vulnerable;
import java.sql.*;
/**
* 漏洞代码示例:SQL 注入
* Vulnerable Code Example: SQL Injection
*/
public class SqlInjectionVulnerable {
public User findByUsername(String username) throws SQLException {
// ... 漏洞代码
}
}
每个文件应该包含:
/**
* 漏洞代码示例:SQL 注入
* Vulnerable Code Example: SQL Injection
*/
public class SqlInjectionVulnerable {
/**
* 漏洞:JDBC 字符串拼接
* Vulnerability: JDBC String Concatenation
*/
public User findByUsername(String username) {
// 漏洞代码...
}
}
每个漏洞代码应该有对应的安全代码:
example.com、testuser、password123package com.example.vulnerable;
/**
* 漏洞代码示例:{漏洞名称}
* Vulnerable Code Example: {Vulnerability Name}
*/
public class {Issue}Vulnerable {
/**
* 漏洞:{漏洞描述}
* Vulnerability: {Vulnerability Description}
*/
public void vulnerableMethod(String userInput) {
// 漏洞代码
}
}
package com.example.secure;
/**
* 安全代码示例:{漏洞名称}防护
* Secure Code Example: {Vulnerability Name} Prevention
*/
public class {Issue}Secure {
/**
* 安全:{防护措施描述}
* Secure: {Mitigation Description}
*/
public void secureMethod(String userInput) {
// 安全代码
}
}
如果代码示例需要额外的依赖,请在文件头部注明:
/**
* 依赖:org.springframework.boot:spring-boot-starter-web:2.7.0
* Dependencies: org.springframework.boot:spring-boot-starter-web:2.7.0
*/