正しさとバッドノウハウ

  • 投稿日:
  • by
  • カテゴリ:
なぜPHPアプリにセキュリティホールが多いのか?:第44回 セキュリティ対策が確実に実施されない2つの理由|gihyo.jp ... 技術評論社


大垣さんの記事。言いたいことはわかるのですが、ちょっと気持ち悪い。

「出力」の項の最初に

1.出力先のシステムが誤作動しないようにすべてのパラメータをエスケープして出力する

とありますが、「まとめ」の項で出てくる、

SQL文を作成する場合にリテラル(パラメータ)を文字列としてエスケープすると浮動小数点型のデータが正しく処理されないデータベース

の例示のところでは、「すべてのリテラルを文字列として処理」することを「正しい」として
優先してしまっています。
そうではなく、あくまで、「出力先のシステムが誤作動しないよう」に必要であれば
数値としてエスケープすべし、としてほしかったですね。

この例示の部分、バッドノウハウで片付けてしまうと、先に出てきたヘルパー関数の使用に
関しても、「ヘルパー関数を使うことが正しく、そこに抜けがありその対処をすることは
バッドノウハウだ」とも言えるかと思います。

ちょっと筋が通ってない感じで、このあたりが気持ち悪いと感じるところでしょうか。