前回、htmlentitiesをhtmlspecialcharsに変更する事を書いたんですが、そのままだとSQLインジェクションの穴があるかもしれません。
htmlspecialchars(文字列,ENT_QUOTES)
が王道でしょうか。
データベースに問い合わせる場合、例えば
「select * from this_table where name like…」
とクエリを書く場合が多いと思いますが、likeの先が「'」=シングルクォートで囲まれてる場合、「ENT_QUOTES」を使えばシングルクォートを無害なエンティティに変換できます。
SQLインジェクションってのは、本来「'」=シングルクォートや「"」=ダブルクォートで囲まれて問い合わせするのにつけ込んで、入力フォームにそれらを使う事でSQL文を成立させてしまう手口なわけです。
phpやcgiでデータベースクエリ文を生成する時に使っているクォートを禁止すれば、基本的にはOK!
日々デザイナーからプログラマーへ進んでいるこのごろ。
ま、行き着くところまでいきましょぉ。
2008/11/22
jQuery File TreeのSQLインジェクション防止
登録:
コメントの投稿 (Atom)
0 件のコメント:
コメントを投稿