質問: ### 質問 プリペアードステートメントはSQLインジェクションを防ぐための手段の一つとして有効だと思いますが、POSTやGETで外部から変数を取り込んで処理しない場合は、変数を使用していても使う必要はないんじゃないかな?と感じています。 例えば、セッションからユーザーidを取り出し、そのユーザーIDで絞り込んだSQLを走らせるような場合です。 SQLで変数を使用する場合は、必ずプリペアードステートメントを使用すると考えていましたが、SQLインジェクションを受けないような箇所では、必要ないのでしょうか?それとも、脆弱性となりうるのでしょうか? 自身でも調べましたが、思うように情報にたどり着けませんでした。 皆様のご経験からご教授もしくは、説明されているサイトをご紹介いただければ幸いです。よろしくお願いいたします。
回答: 私なら・・・・ですが、 1. 今後の展開でrequestから値を入れることがあるかも 2. prepared statmentで行う部分とそうでない部分が一つのシステムに混在するのはコーディング規約的に嫌 3. prepared statmentでやる場合のデメリットが感じられない 以上の理由からprepared statmentで組み込みますね。 セキュリティ的なことを考えるなら、大丈夫だからと言って敢えてセキュリティ問題を起こしそうなロジックを入れるというのは最初に避けて通りますね。 備えあれば・・・の精神ですね。