/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注入的基本原理了吗?
推荐阅读
-
-
普通二本学校本科毕业生,是该留在本地的省会城市还是去上海找工作 ?
-
-
-
#大头娃娃#郴州再现大头娃娃事件,家长得知真相后崩溃:我女儿喝了2年饮料
-
半月谈网|当网暴变成黑色“生意” 吃瓜谨防变“帮凶”
-
华为|14亿!华为或再次“血洗”全球?日媒:5G仅仅是个开始
-
对公司|两连板东宝生物收函:上半年净利降六成,股价却13天涨92%
-
痤疮大如鹌鹑蛋 (口服)中药1月看不见——烟台中西医肛肠医院中医科张伟先主任妙手回春
-
发生交通事故后应做什么,发生交通事故后第一时间怎么办
-
周三|欧美股市全线上涨,黄金一举收复1960美元关口
-
苹果手机直角边框复古设计iPhone 12系列,iPhone8价格底线持续下降
-
-
-
新泰市行政审批服务局|窗口服务再提升——市行政审批服务局召开第二季度表扬会,创先争优勇担当
-
智能电视两大系统UI对比,原来系统体验好和无广告才是重中之重
-
汽车|净资产仅剩1亿!汽车行业洗牌,力帆历经“至暗时刻”
-
-
钟表上 当分针和时针 重合和180度时 分别都是啥时刻
-