/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注入的基本原理了吗?
推荐阅读
-
-
-
请问大家,北京四中普通班和北京师大附钱学森班哪个更好啊
-
-
天狼星▲王者荣耀:6月份新皮总览!天狼星曝新皮肤,云中君源梦系列上线
-
先生|佳隆股份:股东林长春先生已减持公司股份合计2458万股
-
饮食减肥|抹茶控注意!抹茶只有这样喝,才能强力速瘦!
-
盗窃取保候审一般怎么判,盗窃案取保候审中检察院会怎么样处理
-
-
『霓虹的望着』欠了一身网贷如何上岸?教你四步上岸法
-
张薇事件风波升级!川大校长一夜白头,女方近照曝光满面春光
-
-
-
应采儿二胎剖腹产过程|【模范夫妻】应采儿二胎剖腹产过程曝光 陈小春:上次没拍到被骂了7年
-
美人哒|用宽松T恤叠穿束腰,效果意外很时髦,钟丽缇的胖也是一种美
-
王者荣耀|王者荣耀天云:貂蝉打不出伤害?那是7个细节处理不到位
-
风险投资@创投日报 | 「灵动科技」获1亿元B+轮融资,「云鲸智能」完成近亿元B轮融资,以及今天值得关注的早期项目
-
白夜追凶里面关宏宇跟关宏峰是凶手么,白夜追凶关宏宇和刘音什么关系-
-
-