.net中sql语句书写的问题!

tdxjxx 2005-09-17 10:41:24
我觉得.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;
可以吗?


...全文
186 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
woainin 2005-09-19
  • 打赏
  • 举报
回复
那为什么改成带参数的就能防止呢?
谢谢大侠指点!
amendajing 2005-09-19
  • 打赏
  • 举报
回复
当然可以
jimu8130 2005-09-19
  • 打赏
  • 举报
回复
呵呵上面的人都解释的很清楚了
等着接分了
engine198473 2005-09-19
  • 打赏
  • 举报
回复
带参数的sql语句可以防止SQL注册
没参数可以注册攻击的.
tdxjxx 2005-09-18
  • 打赏
  • 举报
回复
把sql写成字符串容易被sql注入攻击,
但是参数化的sql可以防止sql注入攻击我不能理解,哪位大哥能不能解释下?
ivee 2005-09-18
  • 打赏
  • 举报
回复
就是在URL中输入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语句的可能,比如获取系统帐户权限窃取他人密码等等,只要你的帐号有足够的权限。
这里我说得很浅,网上应该有很多相关的文章。
ivee 2005-09-17
  • 打赏
  • 举报
回复
使用参数化SQL语句或者存储过程是防止SQL注入的一个有效方法,但不是唯一。您仍然可以使用字符串拼接的方法给成SQL语句交给CMD执行(这样要简单一些),考虑到安全隐患,您需要手动验证传入参数的有效性(比如数据类型、数据长度等)。其实一段好的程序,即使使用存储过程,参数也需要校验参数的合法性。
adandelion 2005-09-17
  • 打赏
  • 举报
回复
不带参数可以的,一样运行,但坏人可以SQL注册,攻击你的数据库.
带参数的就不能注册攻击了.不能通过SQL语句的方式攻击你的网站了.
风之影子 2005-09-17
  • 打赏
  • 举报
回复
我觉得.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;
可以的,只是你的语法错了.这样写,试试看吧
select * from table1 where userid='"+变量或文本框的值+"'
一对单引号里是双引号,最里面是一对++号.引号都是英文的.
adandelion 2005-09-17
  • 打赏
  • 举报
回复
带参数的sql语句可以防止SQL注册
没参数可以注册攻击的.
tdxjxx 2005-09-17
  • 打赏
  • 举报
回复
真的谢谢大家,我还真不知道sql攻击

62,039

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧