子句的文本框值

时间:2015-02-10 17:27:46

标签: sql asp.net

SELECT verlog.bearerid, detail.snum 
FROM verlog 
INNER JOIN detail 
ON verlog.txnid = detail.txnid  
WHERE verlog.bearerid ='"+ TextBox1.Text +"'

这是获取文本框值并在where子句中使用它的正确方法吗?

2 个答案:

答案 0 :(得分:1)

我不会像你提到的那样编写脚本;这将为注射铺平道路。如果不使用任何ORM技术,例如Entity框架,它反过来也会调用自己的安全问题,请始终坚持参数化的ado.net查询。看this link

答案 1 :(得分:1)

通过以这种方式构造语句,您可以开启SQL injection攻击,用户可以在其中针对您的数据库运行其他sql。

您可以使用参数化的sql来防止这种情况。然后在执行时传递查询和参数。

SELECT verlog.bearerid, detail.snum 
FROM verlog 
INNER JOIN detail 
ON verlog.txnid = detail.txnid  
WHERE verlog.bearerid = @bearerid 

更多细节可在此处阅读:http://www.csharp-station.com/Tutorial/AdoDotNet/lesson06

或者你可以使用ORM来为你处理这个问题。