java sql 工具类_Java防SQL注入工具类
import javax.servlet.http.HttpServletRequest;
/**
* 防SQL注入工具类
* 把SQL关键字替换为空字符串
* @author zhao
* @since 2015.7.23
*/
public class AntiSqlInjection {
public final static String regex = "'|%|--|and|or|not|use|insert|delete|update|select|count|group|union" +
"|create|drop|truncate|alter|grant|execute|exec|xp_cmdshell|call|declare|source|sql";
/**
* 把SQL关键字替换为空字符串
* @param param
* @return
*/
public static String filter(String param){
if(param == null){
return param;
}
return param.replaceAll("(?i)"+regex, "");//(?i)不区分大小写替换
}
/**
* 返回经过防注入处理的字符串
* @param request
* @param name
* @return
*/
public static String getParameter(HttpServletRequest request, String name){
return AntiSqlInjection.filter(request.getParameter(name));
}
public static void main(String[] args) {
//System.out.println(StringEscapeUtils.escapeSql("1' or '1' = '1; drop table test")); //1'' or ''1'' = ''1; drop table test
String str = "sElect * from test where id = 1 And name != 'sql' ";
String outStr = "";
for(int i=0; i<1000; i++){
outStr = AntiSqlInjection.filter(str);
}
System.out.println(outStr);
}
}
参考:
java类过滤器,防止页面SQL注入
Java防止SQL注入的几个途径
java sql 工具类_Java防SQL注入工具类相关推荐
- java mysql 工具类_Java SE 之 数据库操作工具类(DBUtil)设计
JDBC创建数据库基本连接 //1.加载驱动程序 Class.forName(driveName); //2.获得数据库连接 Connection connection = DriverManager ...
- java调用MySQL脚本_Java调用SQL脚本执行常用的方法示例
前言 大家都知道,在Java中调用SQL脚本的方式有多种,在这里只记录一种自己常用的方式,个人觉得挺实用方便的. 运用ScriptRunner这个类. ScriptRunner类用于执行SQL语句,例 ...
- java封装对象实体类_Java 接口自动化系列--实体类之entity封装
实体包entity下面有4个类,主要存放java对象,每个类必须有私有属性,空参构造,get set方法 具体excel中数据信息见---工具类excel文章 1.API类 解析excel中接口信息的 ...
- java.lang中所有的类_java.lang中的数学类
Math 类 Java 中,讲 Math 类定义为 final 类,不能再派生子类. Math 类中定义的常量和方法都用 static 修饰符来修饰,因此不必创建 Math 类的实例,可以通过类名直接 ...
- java对象生命周期_Java对象生命周期和类生命周期
原标题:Java对象生命周期和类生命周期 作者:彭空空 链接:https://www.jianshu.com/p/25ea857ba78b 导读 对象的生命周期 类的加载机制 类的生命周期 类加载器 ...
- java操作文件爱女_Java的IO操作---File类
目标 1)掌握File类作用 2)可以使用file类中方法对文件进行读写操作. File类 唯一与文件有关的类.使用file类可进行创建或删除操作,要想使用File类,首先观察File类的构造方法. ...
- java 不能继承的类_java中不能继承的类有哪些?
在Java中,只要是被定义为final的类,也可以说是被final修饰的类,就是不能被继承的. 因为jdk的开发者认为,有一些最基本的类没要必要对开发者开放,如果用户继承时操作有误,很可能引入很多问题 ...
- java构造一个水果类_Java基础入门之Object类、匿名内部类、构造方法的继承解析...
前言 大家好,我是Java进阶者.这篇文章我们主要介绍Java基础中的Object类.匿名内部类.构造方法的继承知识,一起来学习下吧! 一.Object类 1.Object类是所有类的父类,所有类都继 ...
- java正则表达式类_java中正则表达式之Pattern类与Matcher类
java中正则表达式之Pattern类与Matcher类 ======================================================================= ...
- java虚拟机预先加载哪些类_Java虚拟机JVM学习02 类的加载概述
Java虚拟机JVM学习02 类的加载概述 类的加载 类的加载指的是将类的.class文件中的二进制数据读入到内存中,将其放在运行时数据区的方法区内,然后在堆区创建一个java.lang.Class对 ...
最新文章
- 文件句柄和文件描述符的区别和理解指针
- mysq 开启慢查询日志
- python---基础知识回顾(五)(python2.7和python3.5中的编码)
- 进程间的通信方式(二):管道Pipe和命令管道FIFO
- 集成学习算法之boosting、bagging和随机森林算法原理
- View.Post () 的身世大揭秘
- 【简便解法】1078 字符串压缩与解压 (20分)_42行代码AC
- Android Images
- [CentOs7]iptables防火墙安装与设置
- 算法面试题 java_【面试算法题】Java Stack 类的使用
- 贪吃蛇程序设计报告python_C某贪吃蛇程序设计报告.doc
- 电信网速怎么测试软件,电信网速测试在线(中国电信自助测速app)
- Cameralink光端机
- 攻防演练比赛中攻击队常用的测试方法列举
- 小程序如何复用公众号资质快速认证
- linux bash 自动补全,bash中的自动补全机制
- prolog与python_讲解:SENG201、Software、Python,Java/c++Web|Prolog
- 欧洲能源商品期货股票套利
- scrapy爬虫并保存数据库
- vue-print-nb 实现页面打印(含分页打印)