/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注入的基本原理了吗?
推荐阅读
-
@卫生间做防水,户主必须学会看4个地方,否则花了钱也是白搭
-
『KellyBOB』让你唇部娇艳欲滴的小秘方,快来学呀!,低至10元
-
-
-
-
「游戏驿站」首款皮肤28号亮相,西施重做玩法一览,王者荣耀:五虎悬念站上线
-
『不如物娱乐』虽然我不知道她在哪,佩洛西我们美国总有一天会有女总统
-
#一字马#“一字马”还要分段位?青铜VS黄金,看到王者:学不来!
-
乐居财经▲广州发布全国首个针对“新基建”的产业政策
-
我们的歌4|《我们的歌4》B组:4组盲配失败,林黄强联合,1位歌手观众不买单
-
-
-
『富相汽车小』揽胜极光/发现运动版推插混车型,首搭3缸机
-
幸福一箩筐|第十九届金融科技创新峰会在上海顺利召开
-
『MIUI』小米新5G配置确认:MIUI12+48MP四摄+4160mAh,或售2499元
-
红星新闻|商务部:将引导市场调整功能分区,把生鲜农产品转到地上经营
-
-
甄嬛|甄嬛肚里的“龙凤胎”,他们名字连读,竟然是甄嬛出轨的证据?
-
阿尔法军视伊朗盟友一路势如破竹,五角大楼如坐针毡,战争打响2天击毙120人
-
新晋辣妈谈育儿:反省是否2点没做好,孩子一进门就叫“妈”?妈妈先别骄傲