什么是sql注入?如何注入的呢?

 我来答
pieryon
2016-04-01 · 知道合伙人数码行家
pieryon
知道合伙人数码行家
采纳数:14410 获赞数:166879
获取软件设计师高级职称 万达金融最佳创新奖

向TA提问 私信TA
展开全部
  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';
cz_wcy
2016-03-14 · TA获得超过954个赞
知道大有可为答主
回答量:3091
采纳率:0%
帮助的人:3767万
展开全部
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语句时,建议采用参数的方式
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
漠视的小叮当205375
2016-03-18 · TA获得超过5562个赞
知道大有可为答主
回答量:1619
采纳率:37%
帮助的人:937万
展开全部
SQL注入攻击是黑客对数据库进行攻击的常用手段之一。随着B/S模式应用开发的发展,使用这种模式编写应用程序的程序员也越来越多。但是由于程序员的水平及经验也参差不齐,相当大一部分程序员在编写代码的时候,没有对用户输入数据的合法性进行判断,使应用程序存在安全隐患。用户可以提交一段数据库查询代码,根据程序返回的结果,获得某些他想得知的数据,这就是所谓的SQL Injection,即SQL注入。

SQL注入是从正常的WWW端口访问,而且表面看起来跟一般的Web页面访问
防止SQL注入攻击
没什么区别,所以市面的防火墙都不会对SQL注入发出警报,如果管理员没查看ⅡS日志的习惯,可能被入侵很长时间都不会发觉。但是,SQL注入的手法相当灵活,在注入的时候会碰到很多意外的情况,需要构造巧妙的SQL语句,从而成功获取想要的数据。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式