6
パラメータ化されたSQLクエリを作成するにはどうすればよいですか?どして私がこんな事に?
「誰もが」パラメータ化されたSQLクエリを使用して、すべてのユーザー入力を無駄にすることなくSQLインジェクション攻撃から保護していると聞きました。 これどうやってやるの?ストアドプロシージャを使用するときにこれを自動的に取得しますか? だから私の理解はこれはパラメータ化されていません: cmdText = String.Format("SELECT foo FROM bar WHERE baz = '{0}'", fuz) これはパラメーター化されますか? cmdText = String.Format("EXEC foo_from_baz '{0}'", fuz) または、SQLインジェクションから身を守るために、このようにもっと広範囲に及ぶ必要がありますか? With command .Parameters.Count = 1 .Parameters.Item(0).ParameterName = "@baz" .Parameters.Item(0).Value = fuz End With セキュリティに関する考慮事項以外に、パラメーター化されたクエリを使用することの他の利点はありますか? 更新:この素晴らしい記事は、Grotokによる質問参照の1つにリンクされていました。 http://www.sommarskog.se/dynamic_sql.html