/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注入的基本原理了吗?
推荐阅读
-
农历|古人说“闰四月,两头春;老农民,卖儿孙”,到底是啥意思
-
郭梓宁|现场|中国奥园:今年拿地预算350亿至400亿元
-
徽柔怀吉粉|本以为不合适,看到成品是我眼拙了,吉克隽逸长得黑还要穿吊带裙
-
午间时刻|王者荣耀:猪八戒战令皮3D视角,腰封超霸气,变色龙很乖,尾巴看了想摸!
-
-
台海网■武汉解封!民进党还有什么理由限制台胞回台?陆委会又“打太极”
-
-
舍里|一人内疚自杀,自己却无罪,英少年开宝马出车祸:一人当场死亡
-
小幺精时尚手记好看炸了,今夏必买“瘦瘦裙”!显瘦又减龄
-
迈克尔·乔丹■单挑输球,被喷了句垃圾话就把队友交易走!乔丹真是惹不起
-
-
-
-
北京卫视|“对不起大家!”石景山万达女子自述为何破坏报警器外出
-
-
-
DM科技|折叠屏设计大改,不再是好评众多,三星设计专利再曝光
-
青年|盘点kpl上那些饱受争议的教练:estar和AG超玩会都没能躲得过去!
-
该咋滴才可以发qq邮箱,怎么把文件发送到别人的邮箱里
-
宁夏银川|宁夏银川:新建居住区须按标准配建养老服务设施