電子書籍の厳選無料作品が豊富!

初めての質問です。よろしくお願いします。


今現在、SQLインジェクションというものが問題になっていますよね

いろいろなサイトを回って調べて見たのですが、具体的な対策として、「'(シングルクォーテーション)」などの特殊文字を確実にエスケープすること、くらいしか対策が書かれておりません。

特殊文字のエスケープさえしっかりしておけばSQLインジェクションは発生しない、という印象を受けたのですが、SQLインジェクションがおきてしまったサイトではエスケープ処理をしていなかったということなのでしょうか?

それとも、エスケープ処理をしていても何らかの方法で不正なSQLの命令を実行されてしまうのでしょうか?


どうにもわからなくて困っているので、どうかよろしくお願いいたします。

A 回答 (2件)

がると申します。



> 特殊文字のエスケープさえしっかりしておけばSQLインジェクションは発生しない、という印象を受けたのですが、SQLインジェクションがおきてしまったサイトではエスケープ処理をしていなかったということなのでしょうか?
Yesです。
或いはもうちょっとよくある現場状況としては「エスケープ処理に抜け落ちがあった(ある1項目だけちゃんと出来てなかった、とか)」なんてのもあります。

んと…気にされているのは「エスケープしてなお危ないケースがあるか」というあたりでしょうか?
だとすると、少なくとも私が知っている範囲内では「No」です。
ただ、「すべての項目を」常にちゃんとエスケープする、という部分が案外に破られやすいのですが。

個人的には「SQL文を作成するところはすべて一箇所に集約して漏れないようにする」のが一番よろしかろうと思います。

以上で回答になりますでしょうか?
    • good
    • 0
この回答へのお礼

非常に参考になりました!
どうもありがとうございます。

お礼日時:2006/12/27 04:15

ケース・バイ・ケースとしか答えようがないのでは?

    • good
    • 0
この回答へのお礼

答えていただいてありがとうございます!
ケース・バイ・ケースということはエスケープしていてもどこかに穴があるかもしれないということなのでしょうか・・・

お礼日時:2006/12/27 04:18

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!