首页 > 数据库 >006-绕过web检查,传输sql语句的功能

006-绕过web检查,传输sql语句的功能

时间:2024-07-26 15:09:52浏览次数:15  
标签:web String sql commons sqlQuery 006 SQL StringEscapeUtils public

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

相关文章

  • Pag动画:umi+libpag+copy-webpack-plugin实现及问题解决
    1、package.json添加如下,安装依赖:"libpag":"^4.2.84","copy-webpack-plugin":"9.1.0",为什么是写死的旧版本,后面解释2、使用的方法,这里只是一个小示例,具体如何使用看个人(这里主要是想记录过程中出现的问题及解决方式): constinit=async()=>{   constPag......
  • SQL Server 2008 下载 安装 配置
    将压缩包 SQLServer2008R2.rar压到当前目录下:点击蓝色字体下载压缩包提取码2rlf1,双击Setup:2,点击左侧安装点击全新安装或向现有安装添加功能:3,点击确定:4,点击输入产品密钥自动输入的点击下一步:5,勾选我接受许可条款点击下一步:6,点击安装:7,等待安装......
  • sqlserver --日常使用脚本
    ----------------------------------------------------------------------------------------------------------Description:sqlserver常用脚本:--------------------------------------------------------------------------------------------------------SELECTT.text,P.q......
  • FlinkSQL窗口函数TUMBLE、SESSION 和 HOP的区别
    目录TUMBLE滚动窗口(TumblingWindow)SESSION会话窗口(SessionWindow)HOP滑动窗口(HoppingWindow)小结HOP窗口为什么不需要rowtime(事件时间) PROCTIME()vsrow_time 为什么HOP窗口常用PROCTIME()?总结TUMBLE、SESSION可以使用处理时间嘛TUMBLE窗口(滚动窗口)SESS......
  • 如果查询不在构造函数中,为什么 Sqlalchemy 会清理查询结果?
    我创建了一个类Result,它接受sqlalchemy语句,存储该语句,执行该语句,并存储执行结果。如果直接在__init__()中执行该语句,下面的脚本将产生预期的结果:1TestJE12TestJE2但是如果该语句在set_result()中执行,下面的脚本输出Nores......
  • 当遇到“无法启动 IIS Express Web 服务器。”时的解决方案
    MicrosoftVisualStudio无法启动IIS Express Web服务器。来自IISExpress的输出:FailedtoregisterURL“http://localhost:24924/”forsite“XWG.WEB”application“/”.Errordescription:另一个程序正在使用此文件,进程无法访问。(0x80070020)当遇到以上错......
  • 搭建.Net WebApi并配置Swagger(一)
    C#进阶之WebAPI(一)那么首先第一点:什么是WebAPI?首先我们了解一下.netframework的框架构成:   可以看到,WebAPI和mvc同属于B/S模板框架的一种,官方对于WebApi的定义是:WebAPI是一个框架,可以轻松构建HTTP服务,覆盖广泛的客户端,包括浏览器和移动设备,WebAPI是在.NetFramwo......
  • python mysql操作
    pipinstallmysql-connector-pythonimportmysql.connector#配置数据库连接参数config={'user':'your_username','password':'your_password','host':'your_host','database'......
  • 基于Springboot + vue + mysql 招生管理系统 设计实现
    目录......
  • 免费分享一套微信小程序投票评选系统(SpringBoot后端+Vue管理端)【论文+源码+SQL脚本
    大家好,我是java1234_小锋老师,看到一个不错的微信小程序投票评选系统(SpringBoot后端+Vue管理端),分享下哈。项目视频演示【免费】微信小程序投票评选系统(SpringBoot后端+Vue管理端)Java毕业设计_哔哩哔哩_bilibili项目介绍社会发展日新月异,用计算机应用实现数据管理功能......