java项目中使用拼接字符串传入sql语句时防止sql注入过滤方法

今天写一个判断,用到sql语句拼接,这种方法存在sql注入风险,如图:

java项目中使用拼接字符串传入sql语句时防止sql注入过滤方法

这是就需要字符过滤了:

java项目中使用拼接字符串传入sql语句时防止sql注入过滤方法

目的就是把客户端request请求中的特殊字符过滤掉,即把键盘上英文和中文字符过滤掉!当然就要一个一个打出来了,代码如下:

比如控制层拿到这username(用户名)、address(用户地址)、phoneNo(联系电话)等:

1
2
3
4
5
6
7
                String username = req.getParameter("username");
		String address = req.getParameter("address");
		String phoneNo = req.getParameter("phoneNo");
		// 过滤特殊字符,防止sql注入
		username = username.replaceAll("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()—-|{}【】‘;:”“’。,、?]", "");
		address = address.replaceAll("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()—-|{}【】‘;:”“’。,、?]", "");
		phoneNo = phoneNo.replaceAll("[`~!@#$^&*()=|{}':;',\\[\\].<>/?~!@#¥……&*()—-|{}【】‘;:”“’。,、?]", "");

自己一个个键盘上英文、汉字打了一遍,测试可用!

java项目中使用拼接字符串传入sql语句时防止sql注入过滤方法
java项目中使用拼接字符串传入sql语句时防止sql注入过滤方法

控制台打印:特殊字符被过滤。

原创文章,作者:Harem,如若转载,请注明出处:https://www.hgjun.cn/?p=1656

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

QQ-501439094

撩一撩:点击这里给我发消息

邮件:501439094@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

隐藏