在存储过程中拼接字符的话还是有可能被注入的。
主要是参数化的过程,你也可以在查询中将用户数据参数化。
尽一切手段不使用sql字串拼接,或使用前严格检查类型过滤敏感字符。
或使用Linq。
linq不也是sql拼接的吗?我也不知道。
看MSDN Webcast最新视频 :Web应用的安全攻防之SQL注入攻击(SQL Injection)
里面有详细讲解
linq最后生成的sql并不是通过拼接出来的,微软已经想到了这点,加入了防止sql注入的机制。就像一楼说尽量不要使用拼接字符串的方式,要使用参数的方式。