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

RT```
什么是sql注入啊? 如何注入的呢?
3楼的大哥 没看懂你的代码

麻烦注释一下,你的那种情况为什么会成功登陆啊?

SQL注入一定意义上可能是目前互联网上存在的最丰富的编程缺陷,是未经授权的人可以访问各种关键和私人数据的漏洞。 SQL注入不是Web或数据库服务器中的缺陷,而是由于编程实践较差且缺乏经验而导致的。 它是从远程位置执行的最致命和最容易的攻击之一。

from 树懒学堂

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-10-15
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语句时,建议采用参数的方式本回答被提问者采纳
第2个回答  2012-06-21
这是因为有注入漏洞, 而且没有过滤敏感字体。
or 1=1

在login.asp中,接收用户输入的Userid和Password数据,并分别赋值给user和pwd,然后再用sql="select * from admin where username="&user&" and password="&pwd&"" 这句来对用户名和密码加以验证。
  以常理来考虑的话,这是个很完整的程序了。而在实际的使用过程中,整套程序也的确可能正常使用。
  但是如果Userid的值和password的值被赋于:safer or1=1 这时,sql="select * from admin where username="&user&" and password="&pwd&"" 就成了:
  sql="select * from reg where user=safer or1=1 and pass=safer or1=1
  怎么样?!我不说大家也明白了吧!
  既然有这样的问题,接下来我们就来看看如何解决它。从上面的程序中各位也可以看出,只要对用户输入的数据进行严格过滤就可以了。具体可以参下面的程序:
  <%
  user=request.from("UserID")
  pass=request.from("password")
  for i=1 to len(UserID)
  cl=mid(UserID,i,1)
  if cl="" or us="%" or us="<" or us=">" then
  response.redirect "54safer ..haha"
  response.end
  end if
  next
  %>
  同样是先取得用户输入数据,然后分析用户输入的每一个字符,如发现异常,则转到错误页面。
  if cl="" or us="%" or us="<" or us=">" then 这一句中可以加入任意的过滤字符,跟据具体情况而定。
第3个回答  2009-05-06
比如简单的登录:新手这样写就有问题
username = request("username")
password = request("password")
sql="select * from userlist where username = '" & username & "' and password = '" & password & "'"

遇到不安分的人就麻烦了,比方输入用户名是:admin 密码是: ' or 1 or '
sql就成了:
sql="select * from userlist where username = 'admin' and password = '' or 1 or ''"

这样就成功通过验证了 呵呵
第4个回答  2020-08-13
SQL注入:利用现有应用程序,将(恶意)的SQL命令注入到后台数据库引擎执行的能力,这是SQL注入的标准释义。