import org.apache.commons.text.StringEscapeUtils; /** * 作用: * 实现绕过web检查,传输sql语句的功能 * * pom: * org.apache.commons:commons-lang3:3.12.0 * org.apache.commons:commons-text:1.10.0 */ public class Main { public static void main(String[] args) { String sqlQuery = "select * from data_source where 1=1 <if test=\"id != null and id !=''\"> and id < ${id} </if>"; // 编码 SQL 查询字符串 String encodedSql = encodeSqlString(sqlQuery); // 模拟传递给前端的过程 System.out.println("Encoded SQL for frontend: " + encodedSql); // 解码 HTML 实体 String decodedSql = decodeHtmlEntities(encodedSql); // 打印解码后的 SQL 查询字符串 System.out.println("Decoded SQL from frontend: " + decodedSql); } // 编码 SQL 查询字符串的方法 public static String encodeSqlString(String sqlQuery) { if (sqlQuery == null) { throw new IllegalArgumentException("SQL query cannot be null"); } // 使用 StringEscapeUtils.escapeSql() 方法进行 SQL 字符串转义 return StringEscapeUtils.escapeHtml4(sqlQuery); } // 解码 HTML 实体的方法 public static String decodeHtmlEntities(String encodedString) { // 使用 Apache Commons Text 中的 StringEscapeUtils 进行 HTML 实体解码 return StringEscapeUtils.unescapeHtml4(encodedString); } }标签:web,String,sql,commons,sqlQuery,006,SQL,StringEscapeUtils,public From: https://www.cnblogs.com/fengzidexuanxue/p/18325360