首页
学习
活动
专区
工具
TVP
发布

10km的专栏

专栏成员
553
文章
1202417
阅读量
51
订阅数
jsqlparser:实现基于SQL语法分析的SQL注入攻击检查
之前写过一篇博客:《java:正则表达式检查SQL WHERE条件语句防止注入攻击和常量表达式》,当前时通过正则表达式来检查SQL语句中是否有危险关键字和常量表达式实现SQL语句的注入攻击检查。坦率的说,这个办法是有漏洞的,误判,漏判的概率很大,基于当前我的知识能力,也只能做到这样。 最近学习了jsqlparser,我知道我找到了更好的办法来解决SQL注入攻击检查问题。 jsqlparser是一个java的SQL语句解析器,在上一篇博客:《jsqlparser:基于抽象语法树(AST)遍历SQL语句的语法元素》介绍了如何通过jsqlparser来遍历SQL语句中所有的字段和表名引用。 其实它可以用来进行更复杂的工作,jsqlparser会将一条SQL语句的各种语法元素以抽象语法树(AST,abstract syntax tree)形式解析为很多不同类型对象,通过对AST的遍历就可以对SQL语句进行分析。采用这种方式做SQL注入攻击检查不会有误判,漏判的问题。
10km
2022-11-16
2.7K0
jsqlparser:基于抽象语法树(AST)遍历SQL语句的语法元素
jsqlparser是一个java的SQL语句解析器,基于它可以实现很多之前无法完成的工作。
10km
2022-11-06
2.3K0
sql2java-pagehelper:Spring AOP支持
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级。本文接续上一篇博客《sql2java-pagehelper:参照Mybatis-PageHelper实现分页查询》介绍Sql2java-pagehelper提供的分页查询(PageHelper)和动态SQL语句(WhereHelper)功能对Spring的支持
10km
2022-09-27
3850
sql2java-pagehelper:参照Mybatis-PageHelper实现分页查询
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级,最近的项目中需要对数据库的记录提供分页查询功能,于是我参照Mybatis-PageHelper并借用其外部数据格式为sql2java实现的分页功能,将其封装为一个sql2java子项目sqlj2ava-pagehelper。使用方式与Mybatis-Pagehelper基本一致。
10km
2022-09-27
3320
sql2java:WhereHelper基于Beanshell(bsh)动态生成SQL语句
BeanShell是一个小型嵌入式Java源代码解释器,具有对象脚本语言特性,能够动态地执行标准JAVA语法,并利用在JavaScript和Perl中常见的的松散类型、命令、闭包等通用脚本来对其进行拓展。BeanShell不仅仅可以通过运行其内部的脚本来处理Java应用程序,还可以在运行过程中动态执行你java应用程序执行java代码。因为BeanShell是用java写的,运行在同一个虚拟机的应用程序,因此可以自由地引用对象脚本并返回结果。 基于Beanshell可以实现很多有意思的功能,比如最近的工作中为了给前端提供灵活的数据库条件查询,我利用Beanshell的能力,可以实现了WhereHelper用于根据前端提供的参数,动态生成SELECT查询语句,大大简化了代码复杂度。 本文介绍WhereHelper的使用
10km
2022-09-27
1.1K0
sql2java-excel(一):基于apache poi实现数据库表的导出及支持spring web
sql2java是我几年年开始写的一个sql2java是一个轻量级数据库(SQL)访问代码(java)生成器。这几年一直在根据工作需要维护升级,最近的项目中需要对数据库的记录提供导出excel的功能。 就开始学习apache的POI,参照网上的示例实现了单张表的导出。并进一步将它封装成一个通用库成为sql2java下的子项目sql2java-excel.以方便在其他项目中技术复用。 本文开始介绍sql2java-excel的使用.
10km
2022-09-27
7890
spring/jackson:实现对保存JSON字符串的字段自动序列化和反序列化
对于spring-web项目,在数据库设计时,当我们想增加一个字段时,并不希望修改表结构,希望设计一个专用的扩展字段,将增加的扩展字段以一个JSON字符串形式保存在这个专用字段中。 spring对JSON的序列化和反序列化是依赖jackson来完成的。 数据发送给前端的时候,我们希望jackson在序列化一个数据库记录对象时以JSON的形式返回这个JSON扩展字段的内容,而不是一个String, 同时前端也能以一个JSON的形式定义这个JSON扩展字段,服务端在收到请求jackson在反序列化时能自动将这个JSON字段反序列化为String.这样省去了手工写代码转换的过程才是最方便的。 举例说明一下吧,以下是一个数据库记录对象,props字段为一个JSON扩展字段可以存储任意字段数据
10km
2022-09-07
1.7K0
纯C++11标准写类topk算法(不稳定排序)类模板
topk排序是指从N个数据中找出最大/小的前K个数据,并以升/降序排列,本文讨论的topk与这个定义稍有差别(所以叫类topk算法):
10km
2022-05-07
4590
mysql:通过JDBC接口执行创建触发器的SQL语句
以下是从mysql官方文档《23.3.1 Trigger Syntax and Examples》抄来的一段创建触发器的SQL脚本,
10km
2022-04-13
2K0
java:正则表达式检查SQL WHERE条件语句防止注入攻击和常量表达式
防止外部输入的SQL语句包含注入式攻击代码,主要作法就是对字符串进行关键字检查,禁止不应该出现在SQL语句中的关键字如 union delete等等,同时还要允许这些字符串作为常量字符串中的内容出现在SQL 语句中。
10km
2021-12-17
3.4K0
mysql:避免命令行使用password的安全警告:Warning: Using a password on the command line interface can be insecure.
在命令行执行mysql的命令mysql -uroot -p${password} < file.sql,会导致下面的警告:
10km
2019-07-31
18.7K0
MSYS2:PID与windows 进程ID
MSYS2下启动的进程ID分两种:MSYS2空间的PID和windows的PID 以mysql为例,在MSYS2窗口启动mysqld
10km
2019-07-31
1.3K0
java大量数据加载时resultSetType参数的设置 TYPE_FORWARD_ONLY
版权声明:本文为博主原创文章,转载请注明源地址。 https://blog.csdn.net/10km/article/details/50404694
10km
2019-05-25
3K0
swift-annotations:java编译时警告主版本 52 比 51 新, 此编译器支持最新的主 版本。
本文介绍了在Java Bean代码中加入Swift注释时出现的警告问题,该问题会导致编译器版本比当前编译器版本高。在文章中提出两种解决方法:1.升级Java编译器到1.8;2.使用Swift-annotations 0.14.x版本。
10km
2018-01-03
3.3K0
maven:调用ant执行build.xml的两种方式
本文介绍了通过 Maven 插件的方式,在 Maven 项目的 pom.xml 中配置 SQL2Java 插件,从而实现在代码中自动生成数据库表的 SQL 语句的功能。具体实现方式是通过在 pom.xml 中配置 SQL2Java 插件,在 build.xml 中定义生成 SQL 语句的 Target 目标,并使用 Maven Antrun 插件在指定生命周期阶段运行 build.xml 文件,实现自动生成 SQL 语句的功能。同时,还介绍了一种通过在 pom.xml 中配置 SQL2Java 插件,在 Maven 构建过程中,根据数据库表结构自动生成 Java 类的方法。
10km
2018-01-03
1.6K0
没有更多了
社区活动
【纪录片】中国数据库前世今生
穿越半个世纪,探寻中国数据库50年的发展历程
Python精品学习库
代码在线跑,知识轻松学
博客搬家 | 分享价值百万资源包
自行/邀约他人一键搬运博客,速成社区影响力并领取好礼
技术创作特训营·精选知识专栏
往期视频·千货材料·成员作品 最新动态
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档