Re: 高木浩光@自宅の日記 - hiddenパラメタは漏れやすいのか?

メモ書き:

  • とりあえず前提として、現状で3を達成する脆弱性としてCSSXSSが存在する(という理解は正しい?)
  • CSRFとセッションジャックの違いとして、はてな等のような長期セッションの場合に、
    • CSRFでは本来の利用者のアクセスをトリガとして引き起こされる
    • セッションジャックでは、利用者のアクセスのタイミングを問わずなりすませる
  • という違いがあるのではないか。
  • できることそのものに大差はないが、時間の制約の有無が違いとしてあげられる。
  • CSRFセッションハイジャックは、それぞれ性質が異なる以上、CSRFからセッションハイジャックに繋げることができるならば、より危険性は増すのではないか。
  • CSSXSSにより得た情報を利用するCSRFは依然、極めて危険脆弱性である事は変わらない。


ワンタイムトークンをちゃんと実装するのは面倒、というのは激しく同意。でも、Railsとかで実装されているFlashはこれを満たしているんだっけ。

flash on Catalyst

sub _save_flash {
    my $c = shift;

    if ( my $sid = $c->_sessionid ) {
        if ( my $flash_data = $c->_flash ) {
            delete @{$flash_data}{ @{ $c->_flash_stale_keys || [] } };

            if (%$flash_data) {
                $c->store_session_data( "flash:$sid", $flash_data );
            }
            else {
                $c->delete_session_data("flash:$sid");
            }
        }
    }
}

セッション単位に結びつけられてるから、同じセッション上に載った複数のブラウザ(タブブラウザとか)で同時作業するとぶつかるかな。

重要なのは、どうすればみんながすぐに幸せになれるか、ですね。