正如标题所说,如果我使用SQL参数,即
SQLCommand cmd = new SQLCommand("select * from users where username = @user and password = @pass limit 1", Cxn); cmd.Parameters.Add("@user", SqlDbType.VarChar): cmd.Parameters.Add("@pass", SqlDbType.VarChar):
我可以直接输入参数值作为输入的直接输入吗?
cmd.Parameters["@user"].value = txtBxUserName.text; cmd.Parameters["@pass"].value = txtBxPassword.text;
当你寻找与转义字符串等有关的任何东西时,这似乎是建议的,最终答案是让参数绑定做到这一点.但这能否防止注射攻击等?或者你还需要执行一些服务器端验证吗?
来自面向严密的PHP背景,它反对我身体的每一根纤维,直接将文本输入查询:p
您提供的示例在SQL注入方面是安全的.参数化查询唯一可能的SQL注入问题是它们是否解决了本身使用动态SQL的proc.
当然,无论是否进行参数化,您仍然需要考虑XSS漏洞利用.