2015-02-05

http://anond.hatelabo.jp/20150204233403

脆弱性につながるバグというものがあって、それは入力チェック(バリデーション)で防げることもあるということだろ。

逆に言えば入力チェック(バリデーション)してないことで作りこんでしまバグの中には脆弱性を生むものも多々ある、と。

言っていることは何もおかしくない。言葉定義がみんなちょっとずつズレてるから間違っているように見えるだけだ。

アプリケーションが正しく動くための処理だ。それができていないのはただのバグだ。

私はそこまで単純に言い切れない。

文字だと思っていた値が謎のバイナリだったとしてもアプリケーションほとんどの場合正しく動くとしたら。

高々100文字程度だと思っていた文字列が100KBくらいあったとしてもアプリケーションほとんどの場合正しく動くとしたら。

アプリケーションの外部仕様を「ゆるく」設計してしまうこともあるんじゃないのか。

そして、その仕様に沿って入力チェック(バリデーション)を「ゆるく」実装し、

その仕様に沿った「ゆるい」テストをするのではないか。

実際、アプリケーションにはバグがないのだから、これで問題ないことになるだろう。

しかし、入力チェック(バリデーション)がゆるいと、周辺ライブラリの潜在的なバグを踏む可能性がそれなりに高いから

安全のためにもアプリケーションの外部仕様は「問題ない範囲で厳密に」設計しておけ、というプラクティスは何か間違っていだろうか。

記事への反応 -
  • 「不正な入力に対して脆弱性を発生させないようセキュリティ対策としてバリデーションを行う」。アホか。プログラマならセキュリティ対策とか気にするな。いや、気にするなという...

    • 脆弱性につながるバグというものがあって、それは入力チェック(バリデーション)で防げることもあるということだろ。 逆に言えば入力チェック(バリデーション)してないことで作...

    • 個人情報漏えいとか、被害でかいじゃん。他のバグと影響度が段違いじゃん。会社潰れるじゃん。 特別扱いするのは自然だと思うけど。

    • どうでもいいけど、「セキュリティ対策」という日本語の用法がおかしい。 セキュリティに対策するのは、ハッカー、クラッカー側だと思うんですけどね。

    • 違う。 通常の操作で発生しうる、正常な入力に対して異常な動作を行うのがバグだ。 通常の操作では発生しえない、異常な入力に対しておこる異常な動作のうち、悪用が可能なものが...

記事への反応(ブックマークコメント)

ログイン ユーザー登録
ようこそ ゲスト さん