作者Pecker ()
看板Visual_Basic
标题Re: VB.NET
时间Thu Oct 28 12:49:28 2004
: : 会出现 SQL Injection 的问题
: 原作者私下发信问我什麽是SQL Injection
: 我想,我还是在这里写出来好了
: 以上面的程式码来说
: 如果我在 TextBox1 当中输入 ' or 'x' = 'x
: 而我在 TextBox2 当中, 也输入 ' or 'x' = 'x
: 整行 SQL command 就会变成
: Select 帐号 from form3 where 帐号 = '' or'x' = 'x' and 密码
: = '' or 'x' = 'x'
: 然後运算之後就会造成 Where 後面永远是 True
: 所以 我就不需知道帐号密码就可以轻松登入
: 更可怕的是当你下了 dr.read() <== 用 DataReader 的指令之後
: 所读到的会是第一个使用者, 通常不都是 admin 吗?
: 所以这个登入者可以轻松取得所有权限...
: 很可怕吧...
: 所以大家请小心
同一篇文章自回第三次.....
要防范 SQL Injection 的话, 最重要的就是不要用组合的方法产生
SQL Command
要善用 .NET 当中 OleDBCommand 当中的 Parameter 属性
详细内容,请到
http://www.microsoft.com/taiwan/msdn 去搜寻
SQL Injection
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 59.104.8.226