/exec(s|+)+(s|x)pw+/ix
等等…..
(3) 字符串过滤
比较通用的一个方法:
(||之间的参数可以根据自己程序的需要添加)
public static boolean sql_inj(String str) { String inj_str = “’|and|exec|insert|select|delete|update| count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,”; String inj_stra[] = split(inj_str,”|”); for (int i=0 ; i < inj_stra.length ; i++ ) { if (str.indexOf(inj_stra[i])>=0) { return true; } } return false; }
(4) jsp中调用该函数检查是否包函非法字符
防止SQL从URL注入:
sql_inj.java代码:
package sql_inj; import java.net.*; import java.io.*; import java.sql.*; import java.text.*; import java.lang.String; public class sql_inj{ public static boolean sql_inj(String str) { String inj_str = “’|and|exec|insert|select|delete|update| count|*|%|chr|mid|master|truncate|char|declare|;|or|-|+|,”; //这里的东西还可以自己添加 String[] inj_stra=inj_str.split(“|”); for (int i=0 ; i < inj_stra.length ; i++ ) { if (str.indexOf(inj_stra[i])>=0) { return true; } } return false; } }
(5) JSP页面判断代码:
使用JavaScript在客户端进行不安全字符屏蔽
功能介绍:检查是否含有”‘”,””,”/”
参数说明:要检查的字符串
返回值:0:是1:不是
函数名是
function check(a) { return 1; fibdn = new Array (”‘” ,””,”/”); i=fibdn.length; j=a.length; for (ii=0; ii<i; ii++) { for (jj=0; jj<j; jj++) { temp1=a.charAt(jj); temp2=fibdn[ii]; if (tem’; p1==temp2) { return 0; } } } return 1;}
总的说来 , 防范一般的SQL注入只要在代码规范上下点功夫就可以了 。
凡涉及到执行的SQL中有变量时 , 用JDBC(或者其他数据持久层)提供的如:PreparedStatement就可以 , 切记不要用拼接字符串的方法就可以了 。
看完本篇文章 , 小伙伴们明白sql注入的基本原理了吗?
推荐阅读
-
『旅行者』现在距地222亿公里,340万年后“旅行者一号”会飞到哪?
-
-
【小朋友】好消息!全国首例儿童新冠肺炎重症患者在武汉治愈
-
『时尚探究社』三款连衣裙搭配不同元素,穿出优雅迷人的高级感,春夏拒绝沉闷
-
-
数码智行线 万元级旗舰音质标杆是怎样炼成的?,艾巴索DX220Max全网最全评测
-
#魔兽世界#魔兽世界:部落人数为何多于联盟,这四点原因值得思考!
-
【】2020国考将补录7000余人 考生今起可提交调剂申请
-
『』“帮我弟交首付还不够,还得拿出15万装修费,不然离婚”“随意”
-
-
长征五号b■数十年来重返大气层最大物体,长五B残骸即将返回,美方称很担心
-
剧说天下|李准基曾与陈翔同台,娱乐圈艺人爱撞脸?翁宇庆获李光洙认证
-
娱乐大吐槽君|《大江大河》视感,张嘉译、黄轩同台飙戏,正午阳光又一部大剧
-
-
-
全球经济|央行破坏市场 英镑惨遭打压 欧元可以“抄底”?
-
-
-
-
向未来奋斗的励志小男人|就没打算活着回去!人生歪理,霸气到噎死人,老子来到这个世上