我觉得.net中带参数的sql语句的书写是不是可以简略一点:
比如:
string sqlstr="select * from table1 where userid=@userid"
....
然后还要:
cmd.parameters.Add("@userid",userID);
...
这样是不是很麻烦
我sqlstr里是不是可以直接使用变量呢?
比如:
string sqlstr="select * from table1 where userid="+edit.text;
可以吗?
比如:
string sqlstr="select * from table1 where userid=@userid"
....
然后还要:
cmd.parameters.Add("@userid",userID);
...
这样是不是很麻烦
我sqlstr里是不是可以直接使用变量呢?
比如:
string sqlstr="select * from table1 where userid="+edit.text;
可以吗?
解决方案 »
- Asp.net 实时监测帐号和防转代码效果是怎么做的?
- 100分,我在学习2.0的迭代,总是出错请大家帮看看,我初学。
- 已存在的DataTable是否可以作为SQL Table放到连接字符串里访问?
- OWC的问题,如何让画的线细一点,为什么我这语法会通不过呢,急
- 关于datagrid 与弹出窗口的问题 ,在线求解
- 把字段值直接赋给Label,DataReader可以写dr[""],那么,假如不用DataReader而用DataSet,如何写?
- TreeView怎么绑定动态生成的XML文件?
- DateTime类型比较大小问题
- 模式窗口简单问题快来抢分!!
- 高分求教!!在线等
- 诚信求教如何制作类似Excel的完全可编辑的DataGrid,关键还要支持键盘方向键切换单元格
- 数据类型转化问题?
没参数可以注册攻击的.
比如:
string sqlstr="select * from table1 where userid=@userid"
....
然后还要:
cmd.parameters.Add("@userid",userID);
...
这样是不是很麻烦
我sqlstr里是不是可以直接使用变量呢?
比如:
string sqlstr="select * from table1 where userid="+edit.text;
可以的,只是你的语法错了.这样写,试试看吧
select * from table1 where userid='"+变量或文本框的值+"'
一对单引号里是双引号,最里面是一对++号.引号都是英文的.
带参数的就不能注册攻击了.不能通过SQL语句的方式攻击你的网站了.
但是参数化的sql可以防止sql注入攻击我不能理解,哪位大哥能不能解释下?
很多网站都会用到类似的URL:http://www.yoursite.com/shownews.aspx?id=333
后台一般会用到类似的语句:string strSql = "select id, title from news where id = " + Request.QueryString["id"]
然后执行这个SQL语句。
看似没有什么问题,但如果遇到一个恶意用户,在URL输入下面的URL(举例):
http://www.yoursite.com/shownews.aspx?id=333%20drop%table%20news--
如果得逞,你的news表就会被删除。
类推,如果没有对这些非法数据进行处理,就会给用户提供了运行各种SQL语句的可能,比如获取系统帐户权限窃取他人密码等等,只要你的帐号有足够的权限。
这里我说得很浅,网上应该有很多相关的文章。
没参数可以注册攻击的.