下面的代码是否会被考虑"安全"?
Public Function GetManager(ByVal uname As String) As String
Dim strSelect = String.Format("SELECT UserName FROM aspnet_Users INNER JOIN Hierarchy ON UserId = LineManagerID WHERE StaffID = (SELECT UserId FROM aspnet_Users WHERE UserName = '{0}')", uname)
Dim cmdCommand = New SqlCommand(strSelect, _connection)
GetManager = cmdCommand.ExecuteScalar()
End Function
我特意看那个部分..
where UserName = {'0'}, uname
我是否正确地说撇号让我接触到一些潜在的脚本攻击?
非常感谢。
DS
答案 0 :(得分:2)
不,它不安全。您的uname-parameter将插入到SQL命令的字符串中。 邪恶的用户可以发送任何与你的SQL混淆的字符串。
最好的方法是使用参数化查询:How do I create a parameterized SQL query? Why Should I?