うたらぼ(アメブロ)ホームピグアメブロ芸能人ブログ人気ブログAmeba新規登録(無料)うたらぼ(アメブロ)ColdFusionを中心として、その他もろもろ、気が向いたときに書いていきます。ブログ画像一覧を見るこのブログをフォローする【cfqueryparam】SQLインジェクションを防ぐSQLインジェクションとは、アプリケーションのセキュリティ上の不備を意図的に利用し、アプリケーションが想定しないSQL文を実行させることにより、データベースシステムを不正に操作する攻撃方法のこと。その攻撃を可能とする脆弱性のこと。以下のソースがあります。</cfquery>idで絞り込みたい場合は、URLは以下のようになります(ドメインとプログラム名は適当)。http://www.hoge.com/index.cfm?id=1idが100というデータが存在しない場合は、http://www.hoge.com/index.cfm?id=100としても、一致するデータはありません。以下のようにするとどうでしょう(%20はスペース)。http://www.hoge.com/index.cfm?id=100%20or%200=0なんと!全データを取得してしまいます。クエリの処理を見てみると、以下のようになりました。0=0where句の意味は、「id=100のデータ、または0=0(true)(すべて)」となります。これでは意図する結果を得られません。idは数値のみなので、数値だけを対象としたい。こんなときにcfqueryparamを使用します。"CF_SQL_INTEGER">再度以下のURLを実行します。0=0cfqueryparamで指定した型はintegerなので、url.idの値は該当しません。フォームやURLを使用する場合、入力した値が直接SQLに関係ある場合は、cfqueryparamを使うほうがよいです。cfqueryparamのドキュメントはこちらです(cf7)。Reserved.スパムを報告お問い合わせ利用規約ヘルプ。