/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注入的基本原理了吗?
推荐阅读
-
余子明|姜子牙余子明身体惹担忧,骨瘦嶙峋需多人照顾
-
-
一纸红筏 男子发现院子里面有洞,于是把它挖开,看到里面很欣喜
-
北青网-北京青年报|央行:中国经济不存在长期通胀或者通缩的基础
-
21最保险|平安人寿又现重大改革:建立3+1组织体系,全力支撑数字化转型
-
-
疫情|黑科技助力疫情防控新业态激发中关村新经济动能
-
-
-
第十届兰州黄河文化旅游节开幕 “依河”发展旅游综合全链条
-
华为|90Hz刷新率+30W快充+4800万四摄仅1399,比真我V3更值得入手
-
局评:渤船取得重大生产节点胜利,核潜艇有好事,中船和中核联合贺喜
-
-
「普拉达女王」一个长斑太真实,一个满脸的胶原蛋白,同样近50的蒋勤勤和秦海璐
-
张生全历史真相|他又是怎样对待胤禩妻子郭络罗氏的,雍正对胤禩进行严厉打击后
-
-
『健康』网络问政 丨非贵阳户籍如何办理健康通行证明?
-
-
最全花茶搭配及功效作用,各种玫瑰花茶搭配喝法及功效
-
斑马浮世绘|两年后终立案,浙江一村支书被38名村民实名举报:滥用职权、贪污腐败