是否包含sql关键字

简介: 该方法用于检测SQL注入风险,将输入字符串转为小写后,匹配预定义的危险SQL关键字(如select、drop等)及特殊字符,若包含则返回true,提示存在安全风险,否则返回false。适用于基础SQL过滤防护。

public static boolean sqlValidate(String str) {

   if (null == str || "".equals(str)) {

       return false;

   }

   str = str.toLowerCase();// 统一转为小写

   String badStr = "'|and|exec|execute|insert|select|delete|update|count|drop|*|%|chr|mid|master|truncate|"

       + "char|declare|sitename|net user|xp_cmdshell|;|or|-|+|,|like'|and|exec|execute|insert|create|drop|"

       + "table|from|grant|use|group_concat|column_name|"

       + "information_schema.columns|table_schema|union|where|select|delete|update|order|by|count|*|"

       + "chr|mid|master|truncate|char|declare|or|;|-|--|+|,|like|//|/|%|#";// 过滤掉的sql关键字,可以手动添加

   String[] badStrs = badStr.split("\\|");

   for (int i = 0; i < badStrs.length; i++) {

       if (str.indexOf(badStrs[i]) >= 0) {

           return true;

       }

   }

   return false;

}

相关文章
|
1天前
|
存储 算法 BI
xxljob本地运行
本文介绍XXL-JOB分布式任务调度框架的部署与使用,涵盖源码获取、服务端数据库初始化、配置修改、服务启动及客户端注册全流程,并演示如何在控制台配置定时任务与调度策略,实现任务的高效管理与执行。
xxljob本地运行
|
1天前
|
人工智能 自然语言处理 Java
Java Client
本教程介绍如何使用Elasticsearch 7.17.x的新版Java Client配置客户端、创建索引、映射分析及增删改查文档。通过商城搜索场景,演示索引映射设计、Java模型类构建、批量导入数据等操作,并解决LocalDateTime序列化等问题,提升开发效率。
当前日期是否在[startDate, endDate]区间
判断当前日期是否在指定的开始日期和结束日期区间内。若开始或结束日期为空,则返回false;否则判断当前时间是否介于两者之间,是则返回true,否则返回false。适用于时间有效性校验场景。
|
1天前
|
监控 Java 调度
定时任务概述
定时任务是通过时间表达式调度执行的任务,适用于对账、提醒、订单超时等场景。实现方式包括单体架构的轮询、Timer、ScheduledExecutorService、Quartz、SpringTask,以及分布式架构下的TBSchedule、Elastic-Job、XXL-JOB等方案,解决集群重复执行、动态调整、故障转移与监控问题。
String转Date
将形如“2015-08-31 21:08:06”的字符串按指定格式解析为Date对象,支持年月日时分秒转换,若格式不符则抛出ParseException异常。
|
1天前
|
Java
Date转String
该代码定义了一个Java静态方法,用于将Date对象格式化为“yyyy-MM-dd HH:mm:ss”格式的字符串,使用SimpleDateFormat实现日期转换并返回结果。
获取某个日期之后/之前几天的日期
该方法用于计算指定日期前后若干天的新日期。通过Calendar类实现,传入Date对象和天数偏移量i,可返回之后或之前i天的日期,适用于日期加减操作。
获取两个日期中的最大/最小日期
该方法用于比较两个日期,返回较晚(最大)或较早(最小)的日期。若任一参数为null,则返回另一个非null日期;通过after方法判断日期先后,确保结果正确。
|
1天前
|
Java
获取当前日期前/后几个月的日期
本段代码演示如何使用Java获取当前时间及三个月前的日期。通过Date获取当前时间,Calendar进行日期计算,SimpleDateFormat格式化输出,最终得到格式化的起始与结束时间字符串。
|
1天前
|
Java
两个日期相减得到的天数/毫秒数
该Java方法用于计算两个日期之间的天数差。传入起始和结束日期,若任一参数为空则抛出异常;通过时间戳相减并换算成天数,返回相差的整数天数。末尾冗余代码存在逻辑冲突。