MS SQL查询这样安全吗?

时间:2012-08-21 15:24:32

标签: sql-server sql-server-2008 asp-classic parameters sql-injection

我对这些事情没有经验,所以我只想问我是否要使用下面的代码,我是否可以免受MS SQL注入攻击/类似的事情?

' OPEN DATABASE
dim objConn,objRS,objTRS,objUnit

Set objConn = Server.CreateObject("ADODB.Command") 
objConn.ActiveConnection = "Driver={SQL Server};Server=MSSQLSrv;Database=DbTest;UID=blablabala;PWD=blablabala"

strQuery = "SELECT USERNAME,PASSWORD from CUSTOMERS where EMAIL=?"
objConn.CommandText=strQuery 
objConn.Parameters(0) = Request.QueryString("email")
SET objRS = objConn.execute(strQuery)

1 个答案:

答案 0 :(得分:1)

通过使用参数化,可以防止SQL注入。

您无法防止跨站点脚本攻击。

此外,您应该在数据库中散列您的userpassword,并检查与散列的匹配,而不是以纯文本格式存储。

通过允许网站对客户表执行select,您的数据也不是特别安全。如果您的网络服务器遭到入侵,您的数据也会受到损害。减少此漏洞的一种方法是在代码中使用存储过程而不是原始SQL。

(为了您的理智和未来的就业能力,您可能希望从经典ASP转向.Net :))