2015-02-04

セキュリティ対策

不正入力に対して脆弱性を発生させないようセキュリティ対策としてバリデーションを行う」。アホか。プログラマならセキュリティ対策とか気にするな。いや、気にするなというのは言い過ぎだけれど、ほとんどの場合においてあなたの書くコードセキュリティ対策必要性はない。

攻撃者の細工した入力によってSQL/HTML/JavaScriptが壊れるとかバッファオーバーフローが発生するとか、そういった脆弱性と呼ばれるほとんどのものはただのバグだ。セキュリティ対策っていうのはコードとは切り離された領域で行うDEPだったりASLRだったりX-Frame-OptionsだったりCSPだったりiframe sandboxだったり、そういうものセキュリティ対策だ。コード上で書くのは「アプリケーションとして正しく動作するための処理」だけだ。

もちろん例外もあるかもしれないけど、それはあくまでも例外だ。日常的に書くコード - 長さやフォーマット範囲のチェックだったり、次の処理系に適したエスケープを施したり - は全てセキュリティ対策のためのコードではない。アプリケーションが正しく動くための処理だ。それができていないのはただのバグだ。

にも関わらず「セキュリティ対策」のようにさも特別ものであるかのような言葉ポジショントークを繰り返すような姿勢は好ましくない。

もし、「セキュリティ対策という視点入力バリデーションをしていない」ということに対して不安を覚える開発者がいるのであれば、セキュリティ対策など考えなくていいので今すぐテストを書け。

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

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

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

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

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

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