- 締切済み
正規表現でSQLのエスケープ
C# 2.0 & SQLServer2000 でプログラムを作成しています。 通常のADOではなく、サードパーティーのDBコンポーネントを使ってDB周りはやっているのですが、その際に SQL 文は自分でエスケープしてやる必要があることに後から気付き、正規表現でSQL文をまとめてエスケープすることはできないかと考えています。 正規表現を使って実現したい事は以下です。 ・文字列中の ' (シングルクォート)を '' (シングルクォート2つ)に置換 ・ただし、 where field = 'xxxx' のように文字列を間に入れている場合の ' は置換しない WEBなどで調べても見つかりませんでした。どなたか正規表現に強い方、教えてください。
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- sakusaker7
- ベストアンサー率62% (800/1280)
回答No.1
SQLインジェクション対策のためにやるのですか? だったら小手先のエスケープでお茶を濁さないで、 それなりのメソッド(まともなコンポーネントならあるでしょう)を使って 根本的に対策すべきです。
補足
普段は SqlCommand の Parameters.Add で普通に対策していますが、 今回はとあるサードパーティー製品を使う必要があり、 そいつにそういった「それなりのメソッド」がないので とりあえず正規表現を使って対策してみようと考えています。 とにかく今知りたい事は上記の正規表現です。 SQLインジェクションに関しては後でちゃんと考えます。