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

Web制作者の常識、開発エンジニアの常識」記事へのコメント

  • それに加えてはなからSQLインジェクション実行が不可能な
    フレームワークの構築とその使用の徹底もより重要と考えます。

    #例えば.NETが提供するフレームワークの内データベース処理を担当するADO.NETは
    #SQLインジェクションが構造的に不可能なように構築されてたと思います
    • えっと、SQLインジェクションが不可能な構造ってことは
      生SQLが発行できないってことですかね。

      #つまり、うちで納品しているプログラムで
      #生SQLをばしばし発行してるのも幻ですよっと。

      • スンマセン不可能ってのは言い過ぎでした。
        ご指摘の通り、SQLCommand関連のクラスとかを直接叩けば生コードはいくらでも叩けます。

        が、ADO.NETで推奨されているように、
        発行されたフォームから持ってくる更新当、値の代入には”パラメータ”技術を介するように
        徹底するとかでも潜在する危険度はぐっと減る事でしょう。言いたいのはそーゆーことです。
        (開発環境で用意されているウィザードを使うと勝手にその辺はやってくれますが
        まあ実際は自動生成されたコードいじったりおおむねSQLCommandとかを直接操作するの
        ですしね)

        #実際には
        • > 値の代入には”パラメータ”技術を介するように
          > 徹底するとかでも潜在する危険度はぐっと減る事でしょう

          プログラマが意識してそれを選択しなければならないとしたら、「きちんとエスケープすることを徹底すればよい」
          というのとあまり変わらないと思いますよ。

          パラメタライズドクエリ(変数バインド)自体は大昔からあるわけで。それがきちんと使われないから脆弱性が
          減らないのですから。
          親コメント

目玉の数さえ十分あれば、どんなバグも深刻ではない -- Eric Raymond

処理中...