
什么是sql注入?如何注入的呢?
3个回答
展开全部
sql注入定义:
SQL注入是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应用运行本不应该运行的SQL代码。如果应用毫无防备地创建了SQL字符串并且运行了它们,就会造成一些出人意料的结果。
对于任何SQL化的表单而言,第一步测试,是输入一个带有单引号的数据:目的是看看他们是否对构造SQL的字符串进行了过滤。当把单引号作为邮件地址提交以后,我们得到了500错误(服务器错误),这意味着“有害”输入实际上是被直接用于SQL语句了。
举例:
SELECT fieldlist
FROM table
WHERE field = '$EMAIL';
这个数据呈现在WHERE的从句中,让我们以符合SQL规范的方式改变输入试试,看看会发生什么。键入anything’ OR ‘x’=‘x, 结果如下:
SELECT fieldlist
FROM table
WHERE field = 'anything' OR 'x'='x';
SQL注入是一种利用未过滤/未审核用户输入的攻击方法(“缓存溢出”和这个不同),意思就是让应用运行本不应该运行的SQL代码。如果应用毫无防备地创建了SQL字符串并且运行了它们,就会造成一些出人意料的结果。
对于任何SQL化的表单而言,第一步测试,是输入一个带有单引号的数据:目的是看看他们是否对构造SQL的字符串进行了过滤。当把单引号作为邮件地址提交以后,我们得到了500错误(服务器错误),这意味着“有害”输入实际上是被直接用于SQL语句了。
举例:
SELECT fieldlist
FROM table
WHERE field = '$EMAIL';
这个数据呈现在WHERE的从句中,让我们以符合SQL规范的方式改变输入试试,看看会发生什么。键入anything’ OR ‘x’=‘x, 结果如下:
SELECT fieldlist
FROM table
WHERE field = 'anything' OR 'x'='x';
展开全部
username = request("username") //获取用户名 这里是通过URL传值获取的
password = request("password") //获取密码 也是通过URL传值获取的
sql="select * from userlist where username = '" & username & "' and password = '" & password & "'" // 这边是拼接SQL字符串 ;之所会
//有注入问题 ,就是因为拼接的方式;如果你用参数的形式,就不会有注问
//题.
admin 密码应该这样写: ' 随便 or 1=1 ' (随便指你随便输点东西就可以)
后面解释了 怎么混过验证 还有更严重的情况,对方可以直接拼接删除库的SQL语句,直接把你的数据库给你干掉
因此在写此类SQL语句时,建议采用参数的方式
password = request("password") //获取密码 也是通过URL传值获取的
sql="select * from userlist where username = '" & username & "' and password = '" & password & "'" // 这边是拼接SQL字符串 ;之所会
//有注入问题 ,就是因为拼接的方式;如果你用参数的形式,就不会有注问
//题.
admin 密码应该这样写: ' 随便 or 1=1 ' (随便指你随便输点东西就可以)
后面解释了 怎么混过验证 还有更严重的情况,对方可以直接拼接删除库的SQL语句,直接把你的数据库给你干掉
因此在写此类SQL语句时,建议采用参数的方式
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问
防止SQL注入攻击
没什么区别,所以市面的防火墙都不会对SQL注入发出警报,如果管理员没查看ⅡS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。
SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问
防止SQL注入攻击
没什么区别,所以市面的防火墙都不会对SQL注入发出警报,如果管理员没查看ⅡS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |