我必须连接到现有的存储过程,该过程在数据库中保存一行文本。
现在我已经看到sp了,它是一个连接的字符串(我的文本放在其中),它用exec(@sql)
执行。
因为文本来自公共网站,所以我必须确保不能进行sql注入。
数据库家伙没有听说过sql注入,所以他不知道该怎么做,但因为我不想暴露我的应用程序的风险,我想知道可以做些什么来防止sql注入。然而,我比sql guy更加程序化。
现在我找到了'SP_EXECUTESQL(@SQL)'
存储过程,这有助于防止sql注入,还是仍然可以进行恶意调用?
提前感谢帮助我。
答案 0 :(得分:2)
在此处查看SP_EXECUTESQL(@SQL)
的MSDN文档:http://msdn.microsoft.com/en-us/library/ms188001.aspx。
警告
运行时编译的Transact-SQL 语句可以公开应用程序 恶意攻击,例如SQL 注射。
另请看这里:http://msdn.microsoft.com/en-us/library/ms175170.aspx
我强烈建议不要相信来自任何用户的任何输入!
您能否以某种方式更改要参数化的查询?