Webマスターツールの指摘に従っていくつか修正。2008/05/04Webアプリが外部に公開されているから事例が多く発生して見えるだけです。人知れず自分の担当する「Webアプリではないシステム」でも起きている可能性が大きいのです。文章構成とか気にしてないので読みにくいかも。search?q=Web%E3%82%A2%E3%83%97%E3%83%AA%E3%81%8C%E5%A4%96%E9%83%A8%E3%81%AB%E5%85%AC%E9%96%8B%E3%81%95%E3%82%8C%E3%81%A6%E3%81%84%E3%82%8B%E3%81%8B%E3%82%89SQL%E3%82%A4%E3%83%B3%E3%82%B8%E3%82%A7%E3%82%AF%E3%82%B7%E3%83%A7%E3%83%B3%E4%BA%8B%E4%BE%8B%E3%81%8C%E5%A4%9A%E3%81%8F%E7%99%BA%E7%94%9F%E3%81%97%E3%81%A6%E3%81%84%E3%82%8B%E3%82%88%E3%81%86%E3%81%AB%E3%81%BF%E3%81%88%E3%82%8B%E3%81%A0%E3%81%91%E3%80%82&amp;btnI=luckySQLインジェクションの例マクロで発生あるBIプロダクト。SQL中に外部からの入力を埋め込むマクロが備わっています。PROD_CD=xxxのような感じにSQLの一部が置換されます。value1に値がまだ設定されていない場合は、プロンプトが表示され値の入力を促します。設定されると、以降他のvalue1を使うマクロは入力された値を適用してSQLを生成します。ところでこれ、value1の入力値が検証できないと非常に危険です。PROD_CD=2あらら。推測できちゃったら複数条件を指定できちゃいますね。全部のレコードを抽出したいなら、項目名を知る必要はないです。以外のレコードも抽出対象になってしまいますね。複数のクエリを注入することもできます。PROD_DATAこれはいわゆるSQLインジェクションというやつです。SQLもしくはSQLの一部を注入(インジェクション)するわけですね。安直なWeb上のサンプルでコードを書くと遭遇する例。以下に仮想的なコードを示します。VALUES('ABC',100);のSQLが作られ、実行されます。ファイルの各行毎に上記のようなSQLが作られ、実行されていきます。