9
参数真的足以阻止Sql注入吗?
我一直在向我的同事和SO讲这件事,说明在SQL查询中,尤其是.NET应用程序中使用参数的好处。我什至甚至承诺它们可以抵抗SQL注入攻击。 但是我开始怀疑这是否是真的。是否有任何已知的SQL注入攻击都可以针对参数化查询成功执行?例如,您是否可以发送导致服务器上的缓冲区溢出的字符串? 当然,要确保Web应用程序安全是需要考虑的其他事项(例如,清理用户输入和所有其他内容),但是现在我正在考虑SQL注入。我对MsSQL 2005和2008的攻击特别感兴趣,因为它们是我的主要数据库,但是所有数据库都很有趣。 编辑:澄清我的意思是参数和参数化的查询。通过使用参数,我的意思是使用“变量”而不是在字符串中构建sql查询。 因此,不要这样做: SELECT * FROM Table WHERE Name = 'a name' 我们这样做: SELECT * FROM Table WHERE Name = @Name 然后在查询/命令对象上设置@Name参数的值。