2008/11/22

jQuery File TreeのSQLインジェクション防止

前回、htmlentitiesをhtmlspecialcharsに変更する事を書いたんですが、そのままだとSQLインジェクションの穴があるかもしれません。

htmlspecialchars(文字列,ENT_QUOTES)

が王道でしょうか。


データベースに問い合わせる場合、例えば
「select * from this_table where name like…」
とクエリを書く場合が多いと思いますが、likeの先が「'」=シングルクォートで囲まれてる場合、「ENT_QUOTES」を使えばシングルクォートを無害なエンティティに変換できます。


SQLインジェクションってのは、本来「'」=シングルクォートや「"」=ダブルクォートで囲まれて問い合わせするのにつけ込んで、入力フォームにそれらを使う事でSQL文を成立させてしまう手口なわけです。

phpやcgiでデータベースクエリ文を生成する時に使っているクォートを禁止すれば、基本的にはOK!


日々デザイナーからプログラマーへ進んでいるこのごろ。
ま、行き着くところまでいきましょぉ。

0 件のコメント: