首页新闻找找看学习计划

有没有办法绕过单引号过滤,从而进行sql注入

0
悬赏园豆:5 [已关闭问题] 关闭于 2012-07-20 08:50
string sql="select * from [User] where [UserName]='"+ToSafeString(name)+"'";

//对name进行转义
public static string ToSafeString(string str)
{
return str.Replace("'","''");
}

能行吗?
【秦时明月】的主页 【秦时明月】 | 小虾三级 | 园豆:803
提问于:2012-06-26 15:36
< >
分享
所有回答(7)
0

string sql="select * from [User] where [UserName]=@username";

SqlParameter param = new SqlParameter("@username",username);

淘@淘 | 园豆:582 (小虾三级) | 2012-06-26 15:42

问你可不可以啊

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-26 15:43
0

不建议这么弄,建议参数化:参数化SQL语句

artwl | 园豆:16526 (专家六级) | 2012-06-26 15:43

问你可不可以做到

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-26 15:43

@[秦时明月]: 不行的,这里有示例:SQL注入中绕过'(单引号)限制继续注入

支持(0) 反对(0) artwl | 园豆:16526 (专家六级) | 2012-06-26 15:45

@artwl: 呵呵,兄弟你好好看看这个实例在回答哦.

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-26 16:52

@artwl: 现在你觉得可不可呀?

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-27 08:51
0

兄弟,我觉得这样写好一些,而且觉得不会被注入的

string sql="select * from [User] where [UserName]=@UserName";

SqlCommand cmd=new SqlCommand();

SqlParameter[] param = new SqlParameter[]{new SqlParameter("UserName",userName),.....}; //这里面可以写多个new sqlparameter

cmd.Parameters.AddRange(param);

ocean397 | 园豆:144 (初学一级) | 2012-06-26 15:54
0

如果逻辑代码跟你写的一样,那肯定可以绕过进行注入了,不过实际使用的时候,不可能使用如此简单的逻辑吧

八戒的师傅 | 园豆:1472 (小虾三级) | 2012-06-26 21:02

你绕过去一下,我想看到这个结果,.

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-26 21:08

和尚你觉得怎样啊?你绕过去给看看啊.

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-27 08:52

@[秦时明月]: 既然您叫我和尚了,那我告诉你吧,贫僧愚钝,确实不知

支持(0) 反对(0) 八戒的师傅 | 园豆:1472 (小虾三级) | 2012-06-28 13:22

@八戒的师傅: 呵呵.开玩笑而已,'唐朝和尚'

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-29 10:14
0

可以 ,这就是为什么系统要做前台验证,跟后台验证了。。前台验证是针对君子的,防不了大师。       这个名词叫做代理攻击,,,前台的所有验证等于0

Jerryz | 园豆:208 (菜鸟二级) | 2012-06-27 09:30

你们怎么都乱讲呢,给一个攻击方案出来才可以啊,不是嘴说.

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-27 09:32

@[秦时明月]: 假如我会一两句也说不清楚,但是我不会,,我得告诉你这知识,做系统要前台后台都验证,伪造服务器代理。

支持(0) 反对(0) Jerryz | 园豆:208 (菜鸟二级) | 2012-06-27 11:23
0

可以..你用分号在写一句SQL...但是要注意你已经有的单引号需要配对

比如name="';SQL语句 WHERE NAME='123"

56180825 | 园豆:1130 (小虾三级) | 2012-06-27 15:17

我要生气了,你们都越来越粗心了,看看过滤函数再说

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-06-27 15:20

@[秦时明月]:确实无法注入了

支持(0) 反对(0) 56180825 | 园豆:1130 (小虾三级) | 2012-06-27 15:25
0

用参数 就可以了

鸡汤哥 | 园豆:210 (菜鸟二级) | 2012-06-28 14:38

就可以注入?

支持(0) 反对(0) 【秦时明月】 | 园豆:803 (小虾三级) | 2012-07-02 11:11
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册