起航学习网

- 让每个人都能学到最前沿新知识、新技能!
起航学习网
当前位置: 起航学习网 > 人在职场 > 安全测试常见问题之SQL注入攻击

安全测试常见问题之SQL注入攻击

时间:2021-05-02 15:50:51来源:深圳软件开发测试培训学校 作者:软件开发测试培训网 已有: 名学员访问该课程

前言: 今天小编跟大家说一说,安全测试的常见问题之SQL注入攻击,软件开发测试人员们我们一起来看一看吧 一、SQL注入攻

今天小编跟大家说一说,安全测试的常见问题之SQL注入攻击,软件开发测试人员们我们一起来看一看吧

一、SQL注入攻击的概念

首先说一下,攻击者之所以可以利用自己输入的数据来达到攻击网站的目的,原因就在于SQL语言作为一种解释型语言,它的数据其实是由程序员编写的代码和用户提交的数据共同组成的。正是这个原因,攻击者可以构造对自己有利的数据,利用网站的一些SQL漏洞来达到恶意的目的。

SQL注入,就是指攻击者将恶意的字符串或者语句等信息作为参数输入,服务器在验证这个字段的时候,读取攻击者输入的数据,将其作为正常的值参与SQL语句的查询,试想,如果攻击者输入了一个字符串,在SQL语句执行之后,可以导致删除表等操作,对于一个应用来说,影响是很大的。

二、SQL注入攻击的一个简单实例

某网站的登录功能,用户登录页面需要填写用户名和密码,假设如果其中一个用户名和密码是admin和123456,当用户输入在相应的表单中输入正确的用户名和密码之后,此应用的相应函数执行一定的验证(验证用户名和密码是否匹配),服务器执行SQL语句(表名是user):select * from user where username=’username’and pwd=’password’,逻辑是如果这个查询语句返回结果不为0,则认为是验证通过,即可以登录成功的用户。

如果某用户输入admin和123456,即执行语句:select * from user where username=’admin’and pwd=’123456’,执行结果不为0,所以用户登录成功。

如果一个用户输入test’or 1=’1和111111,即执行语句:select * from user where username=’test’or 1=’1’and pwd=’111111’,因为此查询语句中1=’1’的结果为1,or 1=’1’使查询条件始终返回1,因此此语句的查询结果不为0,这样,此用户没有使用正确的用户名和密码也可以登录成功,这就是SQL注入的一个简单实例。

三、SQL注入的后果

SQL注入攻击的危害性还是比较严重的,对于一个有经验的SQL注入攻击者,如果网站存在SQL注入的漏洞,攻击者利用一些恶意的字符串可以进行一些表格的查询甚至更改和删除,也就是说,这个安全漏洞会把数据表及其结构显示在攻击者的面前,攻击者甚至可以利用一些手段来进行其他更严重的攻击等。

四、SQL注入一般会出现在哪些地方?

1、含有输入数据表单的页面(登录界面、查询界面、反馈界面等),即使是hidden的表单也有可能存在这个问题。

2、含有用户信息、ID等的URL(类似于http://XXX/index.asp?ID=155),可以操作ID后的参数数据。

五、SQL注入的防范措施

1、从开发者的角度来说,防范措施如下: 
    (1) 转义敏感字符及字符串 :SQL的敏感字符包括:  “exec”,“xp_”,“sp_”,“declare”,“cmd”,“Union”,“+”,“//”,  ”..”,“;”,“’”,“–”,“%”,“0x”,“><=!-*/()|”,和空格。 
    (2) 屏蔽出错信息:阻止攻击者知道攻击的结果 

    (3) 在服务端正式处理之前提交数据的合法性(合法性检查主要包括三 项:数据类型,数据长度,敏感字符的校验)进行检查等。最根本的解决手段,在确认客 户端的输入合法之前,服务端拒绝进行关键性的处理操作.

2、从测试人员的角度来说,防范措施是: 

在程序开发前(即需求阶段),我们就应该有意识的将安全性检查应用到需求测试中,例如对一个表单需求进行检查时,我们一般检验以下几项安全性问题:需求中应说明表单中某一field的类型,长度,以及取值范围(主要作用就是禁止输入敏感字符);需求中应说明如果超出表单规定的类型,长度,以及取值范围的,应用程序应给出不包含任何代码或数据库信息的错误提示等。

以上就是小编今天为大家分享的安全测试常见问题之SQL注入攻击,如果你喜欢我们的文章记得关注深圳IT培训网软件开发测试官网,这里有你想了解的软件开发测试信息。愿你成为一名优秀的软件开发测试工程师。

软件开发测试人才四大魅力元素

——就业竞争小

——高薪没商量

——就业质量高

——无性别歧视

套用狄更斯那句话说:对于急需软件开发测试人员的企业来说,这是一个最坏的时代,但对软件开发测试人才来说,这是一个最好的时代。“随着软件市场的成熟,人们对软件作用的期望值也越来越高,软件的质量和功能可靠性也正逐渐成为人们关注的焦点。”

文章出自:http://www.epx365.cn/jyzn/202179730.html

文章标题:安全测试常见问题之SQL注入攻击



免责声明:本站文章均由入驻起航学习网的会员所发或者网络转载,所述观点仅代表作者本人,不代表起航学习网立场。如有侵权或者其他问题,请联系举报,必删。侵权投诉

(责任编辑:深圳学历教育网)
顶一下
(0)
0%
踩一下
(0)
0%
------分隔线----------------------------
------分隔线----------------------------
发表评论
请自觉遵守互联网相关的政策法规,严禁发布色情、暴力、反动的言论。
评价:
表情:
用户名: 验证码:点击我更换图片
培训学校
IT培训网 访问该机构站点 报名留言 加为好友 用户等级:注册会员 用户级别:10 机构名称:IT培训网 联 系 人:罗老师 联系电话:13783581536 联系手机:13783581536 在线客服:起航学习网客服 在 线 QQ:起航学习网客服 电子邮件: 网站域名:http://www.cnitedu.cn 注册时间:2016-07-18 11:07 最后登录:2021-05-02 14:05