パスワードを忘れた? アカウント作成
この議論は賞味期限が切れたので、アーカイブ化されています。 新たにコメントを付けることはできません。

SQLインジェクション対策:偽プリペアドステートメントに注意」記事へのコメント

  • とはいえ、今時は何らかのフレームワークを使ってるだろうから、フレームワーク->ORM->DBライブラリと追っかけて「本物のプリペアドステートメントであることを確かめる」のは結構大変な気がする。

    ---
    ところで「絶対に文字列結合でSQLを構築しようとしてはいけない」件であるが、
    入力の個数が不定な場合がある(特にIN句)。

    select ... where .... in (?,?,?..?)

    やむを得ずB部分を文字列結合で生成してprepare -> bindしてるが、「絶対に文字列結合を使わない」良い方法があるだろうか?

    • by Anonymous Coward on 2011年11月10日 5時20分 (#2047887)

      PHPで、ですが…。

      $args = array('a', 'b', 'c', ...);
      $sql = 'SELECT ... WHERE ... IN (' . join(', ', array_fill(0, count($args), '?')) . ')';

      なんてのはどうでしょう?

      親コメント

アレゲは一日にしてならず -- アレゲ見習い

処理中...