高分求助,sql 注入,高手请进

各位高手,帮小弟解答个问题:
小弟最近在弄个网站,在网上经常到看,“sql注入”入侵网站,就了解了一下,我得到以下结论,不知对错,请各位给予指正,万分感谢!如下:

我的理解 sql注入 就是通过网页漏洞,获取网站后台 管理用户名 和 密码,再检测出后台登陆地址,然后在登陆网站后台,上传木马等文件,从而控制网站。

请问是这样吗?

如果是这样的话,那把后台登陆页面删掉,需要登陆后台时再上传,这样是不是就可以解决sql注入问题? 虽然方法有些笨^_^

请各位高手给予解答,谢谢!

SQL注入就是利用SQL的语言特征来使SQL条件无效而已。
举个例子:
你登录检验的SQL代码是:
Select * Form User_DB where ID='你输入的ID' and PAS ='你输入的密码';
你知道一个人的ID但是不知道他的密码,可是你很想用他的密码来登录,怎么办呢?你可以输入他的ID,比如是0001。之后你再密码那一栏填写: aa' or 'a'='a
这样你得到的SQL语句就是这样的了:
Select * Form User_DB where ID='0001' and PAS ='aa' or 'a'='a';
虽然你写的密码是不符合标准的,但是条件多了一个“或者'a'='a'”,这个条件是永真的(意思就是说这个条件永远成立),那么你之前写了一万个条件只要有这么一个条件就全白搭。这样你就进去了。这就是最简单的SQL注入。

防止它也相当简单,就是在对库操作的时候禁止用户输入 and,or.....等等SQL关键字就好……网上查SQL防注入一大堆。
温馨提示:内容为网友见解,仅供参考
第1个回答  2006-12-10
那样我感觉也不行,关键是你的程序中用到了Sql 语句的拼接,如果都用存储过程速度快,而且不会出现这样的问题。

但是有时候又要用到拼接,就要做一些判断了。比如过滤一些攻击性的字符。
比如:exec.
当然我们在做queryString的时候我们传递数字就行,我们在另一页面进行验证。
呵呵。

SQL语句插入序号的问题, 高手请进
declare @i int Set @i = 0 Update 表 Set @i = @i + 1,No = @i

SQL高手请进
理解为A1与B1关联。输出连接的B2。有两种方法:第一种是要知道最大重复次数:比如:三次。SELECT A表.*,isnull(c1.b2,'')+isnull(','+c2.b2,'')+isnull(','+c3.b2,'') as b2 from a表 left join (select * from C WHERE C.TMP=1) AS C1 ON C1.A1=A表.a1 left join le...

一种常见的错误类型,高手请进,高分悬赏!!!
检查是否你的SQL数据类型设置不合理?检查你的防注入代码是否字符串变量设置了长度?如果还不行,请在程序里判断输入数据,长度超过8000就分段成多个字符串存入数组,然后再通过你的检测。

SQL数据库问题,高手请进select A B C
A代表着表attendbase、B代表着表:V_AB_VHMODS!A.hmid=B.hmid的意思是A表和B表的联结条件!

SQL数据库几个题目,100分悬赏!高手请进!
1、 select eno, ename,age from emp where job_title=‘高级’ and gender=1 2、∏eno, ename,age (φjob_title=‘高级’ and gender=1 (emp))注:其中的∏表示投影,φ表示选择.4、create index 索引名 on emp (eno)5、select dept.dname ,count(emp ....

sql语句。有点繁琐,高手请进。
update jit_bzqty set wp='尾数存量' where wp='机台存量' and qty<=1000;update jit_bzqty set qty=(select a.qty-b.qty qty from jit_bzqty a,jit_bzqty b where a.wp='机台存量' and b.wp='外观存量')where wp='机台存量';update jit_bzqty set wp='尾数存量' where wp='...

sql高手请进,有个命令显示执行成功但不显示结果,请问原因。
FROM (源_前郭县个体工商户信息名单$ AS a INNER JOIN 源_建设部门低收入$ AS b ON a.新身份证号=b.新身份证号)WHERE a.新身份证号 =b.新身份证号 inner join 只要在这两个表的公共字段之中有相符值,内部联接将组合两个表中的记录。所以你既然已经用了 inner join on ON a.新身份...

SQL高手请进..怎么样用游标统计一个学生成绩表中学全平均分数为90的人 ...
这里有两种情况:1. 如果你的表中有"平均分"这个字段,那么你可以这么写:use \\学生成绩表.dbf private a a=0 go top do while .not.eof()if 平均分>=90 a=a+1 endif skip enddo close tables 如果你表中没有这字段,那再说吧,应该不会有这种成绩表哦 哈哈 ...

SQL 排序问题,高手请进
sql语句后面加上 order by id desc 或者 order by id asc

sql server高手请进,如何删除数据库里几天前的记录
有多种方法:(1)在查询的SQL中增加删除10天之前的语句,缺点:每次查询都要执行;(2)做一个service程序,自动运行,定时执行;(3)在站内做一个单态类,里面启动一个线程,自动跑,每天24:00自动执行清空数据的操作,这个单态类的线程在Application_Start()方法中被运行起来 (4)再不行,做...

相似回答