文档章节

关于SQL 注入

周翔
 周翔
发布于 2016/08/24 10:58
字数 623
阅读 54
收藏 1

1 SQL注入案例

案例1:

某网站后台管理平台测试环境 *********:50052/csop/main.do

在登录界面用户名输入 system' or '1'='1 ,密码随意输入.之后输入验证码,点击登录,提示登录出错,后访问上方提供的网址.此时以 system身份登录系统.即完成一次简单的SQL注入.

 

2 什么是SQL注入

所谓SQL注入,就是通过把SQL命令插入到提交或输入或请求的SQL字符串,最终达到欺骗服务器执行恶意的SQL命令。具体来说,它是利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,它可以通过在输入(恶意)SQL语句得到一个执行结果,而不是按照设计者意图去执行SQL语句。

在案例1中,通过恶意的SQL注入,登录管理员账号,从而提高自己的权限,后台执行SQL:

从上述SQL中可能很清楚的看明白注入的SQL在密码错误的情况下是如何登录system账号.

 

3 如何防止SQL注入?

测试角度:使用专业的测试工具,及时发现并处理SQL注入问题

从网管角度:记录网站相关登录信息,及进发现并跟进SQL注入问题

从DBA角度:控制执行SQL账号权限,定期巡检,可以在问题出现时极大的降低损失.

从开发者角度:

使用参数化执行SQL,而不是拼接SQL语句的方式执行SQL.除了有效防止SQL注入外,参数化执行SQL具有执行效率高,性能优秀,等各种优点.强列建议.

对输入参数(包括不限于:post请求,get请求,cookie注入,c/s 中客户端请求,等)进行验证,

重要的操作采用防御式编程思想在服务端执行,牢记任何客户端都是不可信任的.

出错后暴露尽可能少的错误信息,为SQL注入制造障碍.(比如500错误页面)

(案例1中SQL注入原因出在框架搭建者未考滤全面导致的)

 

其它资料:

阿里的druid对SQL注入有相关防御措施,可以参考https://github.com/alibaba/druid/wiki/%E9%85%8D%E7%BD%AE-wallfilter

© 著作权归作者所有

共有 人打赏支持
下一篇: Maven笔记整理
周翔

周翔

粉丝 7
博文 48
码字总数 21994
作品 0
闵行
程序员
私信 提问
WebGoat SQL注入解题思路

版权声明:本文为 Abracadabra(爱博客大伯) 原创文章,转载请注明作者及链接,请勿用于任何商业用途。 https://blog.csdn.net/u013553529/article/details/82794542 WebGoat SQL注入解题思路...

爱博客大伯
09/20
0
0
于南邮平台游荡关于宽字节注入——骚操作

脚本名:unmagicquotes.py 作用:宽字符绕过 GPC addslashes12345 Example: Input: 1′ AND 1=1 Output: 1%bf%27 AND 1=1–%20 今天早上在南邮平台游荡的时候,做了一题关于宽字节注入的题目...

落花四月
08/11
0
0
Java程序员从笨鸟到菜鸟之(一百零二)sql注入攻击详解(三)sql注入解决办法

在前面的博客中,我们详细介绍了: sql注入攻击详解(二)sql注入过程详解 sql注入攻击详解(一)sql注入原理详解 我们了解了sql注入原理和sql注入过程,今天我们就来了解一下sql注入的解决办...

长平狐
2012/11/12
525
0
MyBatis防止SQL注入

#{xxx},使用的是PreparedStatement,会有类型转换,所以比较安全; ${xxx},使用字符串拼接,可以SQL注入; like查询不小心会有漏动,正确写法如下: Mysql: select * from t_user where na...

3kqing
2016/09/22
76
0
Mybatis防止sql注入

#{xxx},使用的是PreparedStatement,会有类型转换,所以比较安全; ${xxx},使用字符串拼接,可以SQL注入; like查询不小心会有漏动,正确写法如下: Mysql: select * from t_user where na...

吹比龙
2016/03/17
1K
0

没有更多内容

加载失败,请刷新页面

加载更多

JVisualVM监控远程jar包运行情况

1.准备一个jar文件,需要放到服务器上有运行 tuyou-user-SNAPSHOT-0.0.1.jar 2.上传至服务器,启动jar文件: nohup java -Djava.rmi.server.hostname=192.168.104.135 -Dcom.sun.management...

日落北极
19分钟前
2
0
ReentrantReadWriteLock 源码

ReentrantReadWriteLock有五个内部类,五个内部类之间也是相互关联的。内部类的关系如下图所示。 如上图所示,Sync继承自AQS、NonfairSync继承自Sync类、FairSync继承自Sync类;ReadLock实现...

狼王黄师傅
20分钟前
3
0
详解netty原理分析

Netty是一个高性能、异步事件驱动的NIO框架,它提供了对TCP、UDP和文件传输的支持,作为一个异步NIO框架,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动...

小刀爱编程
27分钟前
2
0
Vue props用法小结

Vue props用法详解 组件接受的选项之一 props 是 Vue 中非常重要的一个选项。父子组件的关系可以总结为: props down, events up 父组件通过 props 向下传递数据给子组件;子组件通过 events...

peakedness丶
30分钟前
4
0
pycharm 教程(一)安装和首次使用

pycharm 教程(一)安装和首次使用 2017-12-05 09:19 by 菜鸟飞呀飞, 134207 阅读, 1 评论, 收藏, 编辑 PyCharm 是我用过的python编辑器中,比较顺手的一个。而且可以跨平台,在macos和windo...

linjin200
31分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部