トップ «前の日記(2006-10-29) 最新 次の日記(2006-11-07)» 編集

"週"記

日記?ムリっ。
半年1回の更新を目指すよう心がけます。
RSS

WebAppSec

2003|08|09|10|11|12|
2004|01|02|03|04|05|06|07|08|09|10|11|12|
2005|01|02|03|04|05|06|07|08|09|10|11|12|
2006|01|02|03|04|05|06|07|08|09|10|11|12|
2007|01|03|04|05|06|07|08|09|12|
2008|01|02|
2009|04|
2010|02|

履歴


2006-11-02

_ [webapp][doc] 今夜分かるSQLインジェクション対策

以下の例のようにSQLで使える特殊文字をエスケープして対処するという方法が一般的になっている。
 \   →  \\
 '    →  \'
\ を勝手に特殊文字として拡張していない RDBMS の場合、

' or 1=1 --

みたいな感じで抜けられそうな気がするんですけど、最近の RDBMS はどうなんでしょう?

本日のツッコミ(全8件) [ツッコミを入れる]
_ naka64 (2006-11-02 06:14)

確かにこれぢゃ、変数が「$」付きなところを含めて前段/加工段のPerl処理の話でんなぁ。

_ TIP (2006-11-02 09:00)

「’’」ってエスケープもあった気がする。<br>きっちり書くなら主要なRDBMS別に書くべきですかね?

_ ikepyon (2006-11-02 09:25)

SQLの場合''のエスケープの方が一般的だったような気が・・・<br>IPAのセキュアプログラミングでは''が使われてますね。

_ bun (2006-11-02 09:44)

「''」がどのRDBMSでも使えるエスケープだったと思います(SQL92あたりの仕様に書いてあったはず)。きっちり書くなら、「\を拡張してるRDBMSでは『\\』にエスケープするのを忘れないように。」でしょうかね。「\'」って変換が有効なのはレアケースだと思います。

_ TIP (2006-11-02 14:29)

修正しました。後ほど反映されるかと思います。ありがとうございます。

_ 通りすがり (2006-11-02 15:22)

あいかわらず TIP は出鱈目だな。<br>修正した?訂正したって書いてないやん。

_ TIP (2006-11-02 16:38)

訂正の履歴は文末に載ってますよ。

_ 通りすがり (2006-11-02 17:29)

修正履歴に書いてあることが嘘やん。<br>'' を \' って書いてたくせに。

お名前:
E-mail:
コメント:

投稿する前にチェックボックスをチェックしてください


無料アクセス解析