といったところから開発者を支援して、安全なアプリケーション開発を推進していくそうです。
www.webappsec.jpの証明書を更新してみた。
RapidSSL.comより購入。有効期限が2年間の証明書を更新で$60とお手軽。
なにやら不安なことが書いてある。
さらに,データをチェックする場所も,適切な位置に変更した。従来は,SQLインジェクションやXSSへの対策として,ユーザーからの入力データを受け取ったときにチェックしていたが,それでは不適切だった。改修後は, SQL インジェクションについては「SQL文をデータベースに渡す直前」,XSSについては「応答ページを生成する直前」に,それぞれチェックするようにした。
入力値のチェックは、「ユーザーからの入力データを受け取ったとき」で正解だったんじゃないですかね?使う直前でチェックにしてしまうと、
とか、同じ入力値に対して何度も何度もチェックしなきゃいけなくなるんですが、私なら漏れなくチェックできる自信ないです。
せっかくチェック機能の一元化したなら、入力値を受け取った直後にチェックを行ったほうが漏れが少なくなるでしょう。
「仮に,内部犯がアプリケーションを介さずにデータベースのデータに直接SQL文や<script>タグを埋め込んだとしても無害化できる」(担当した技術者)
単に、ユーザ(ブラウザ)からの入力だけしか入力として認識してなくて、データベースからの入力に対する入力値チェックが抜けてただけですね。データベースを直接操作される危険を想定するなら、データベースに格納されたデータ全てを汚染されたデータとして扱い、ユーザからの入力と同様、データベースから読み込んだ直後に入力値チェックするだけです。
タイトルにあるように多層防御ってことで、チェックする箇所を「追加」ならよかったのに、「変更」したために攻撃が成功するパターンを増やしてしまっていないか心配です。
_ masa [静的コード分析の詳細な情報知ってます? これは、違った意味でやばいです。]