注入方法:SQL注入防御有哪些方法这三招很有用
【小Y 提醒】文章收集整理于网络,仅供参考!如需了解“SQL注入防御有哪些方法这三招很有用”等有关服务器、云主机租用、托管、配置、价格问题,请咨询YINGSOO客服,获取最新优惠!
【热门主机】越南云服务器促销 | 韩国站群服务器促销 | 德国物理服务器促销
【原创文章】什么是服务器系统?有哪些服务器系统?
SQL注入一种常见的数据库破解手段,,也是全球互联网中最频繁出现的漏洞问题。数据的重要性想必不用多说,由此可见SQL注入的影响有多大,因此做好SQL注入防御很重要,对此下文就给大家分享几个方法。
下面针对JSP,说一下SQL注入防御的应对方法:
1、(简单又有效的方法)PreparedStatement
采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。
使用好处:
(1)代码的可读性和可维护性;
(2)PreparedStatement尽最大可能提高性能;
(3)最重要的一点是极大地提高了安全性。
原理:
sql注入只对sql语句的准备(编译)过程有破坏作用,而PreparedStatement已经准备好了,执行阶段只是把输入串作为数据处理,而不再对sql语句进行解析、准备,因此也就避免了sql注入问题。
2、使用正则表达式过滤传入的参数
要引入的包:
import java.util.regex.*;
正则表达式:
private String CHECKSQL = “^(.+)\\sand\\s(.+)|(.+)\\sor(.+)\\s$”;
判断是否匹配:
Pattern.matches(CHECKSQL,targerStr);
下面是具体的正则表达式:
检测SQL meta-characters的正则表达式 :
/(\%27)|(\’)|(\-\-)|(\%23)|(#)/ix
修正检测SQL meta-characters的正则表达式 :
/((\%3D)|(=))[^\n]*((\%27)|(\’)|(\-\-)|(\%3B)|(:))/i
典型的SQL 注入攻击的正则表达式 :
/\w*((\%27)|(\’))((\%6F)|o|(\%4F))((\%72)|r|(\%52))/ix
检测SQL注入,UNION查询关键字的正则表达式 :
/((\%27)|(\’))union/ix(\%27)|(\’)
检测MS SQL Server SQL注入攻击的正则表达式:
/exec(\s|\+)+(s|x)p\w+/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;}
凡涉及到执行的SQL中有变量时,用JDBC(或者其他数据持久层)提供的如:PreparedStatement就可以 ,切记不要用拼接字符串的方法就可以了。
以上就是关于SQL注入防御的方法的介绍,上述几种方法有一定的参考价值,有需要的朋友可以了解看看,希望对大家做好SQL注入防御有帮助,想要了解更多可以继续浏览本公司其他相关的文章。
YINGSOO,国际数据中心综合服务提供商,专注高品质、企业级海外服务器租用/托管服务,拥有ISP牌照、实体公司、专业团队、9年经验,7x24x365全天候服务,3天免费试用,品质保障、值得信赖!全国统一服务热线:400-630-3752
热搜词条:【显示员工】【下图虚拟目录】【分页函数】【字段字符】【容器安装】【数据数据丢失】【网络攻击】【输入密码】【权限注入】【目录这就】【容器网卡】【损坏重启】【方式操作】【小狐狸云服务器】【服务器租用】【登录配置】【建站博客】【安装输入法】【空格去除】【建站网站】【打包文件】【让我帮你】【代码查询】【序列时间】【数据对象】【安装配置】【下载地址简体中文】【服务器租用】【变量存储过程】【时间都是】
版权声明:本站文章来源标注为YINGSOO的内容版权均为本站所有,欢迎引用、转载,请保持原文完整并注明来源及原文链接。禁止复制或仿造本网站,禁止在非www.yingsoo.com所属的服务器上建立镜像,否则将依法追究法律责任。本站部分内容来源于网友推荐、互联网收集整理而来,仅供学习参考,不代表本站立场,如有内容涉嫌侵权,请联系alex-e#qq.com处理。