タグ

phpとcsrfに関するshimookaのブックマーク (3)

  • FuelPHPのCSRF対策トークンは何が問題だったのか

    田中ひさてる @tanakahisateru 話題のFuelPHPのCSRFの件は https://t.co/e2Wh7p5p あたりかな。 uniqid() がもうすでに時刻に準拠した値なのに time() 付けてもねぇ、このソース公開しちゃってるしねぇということ? 2012-06-06 14:06:50

    FuelPHPのCSRF対策トークンは何が問題だったのか
  • output_add_rewrite_var()でCSRF対策してみる - k-holyのPHPとか諸々メモ

    output_add_rewrite_var() は、session.use_trans_sid で利用されているURLリライト機能に新しい名前と値のペアを追加する関数。 session.use_trans_sidの場合と同様、有効になるHTML要素と属性は url_rewriter.tags の設定によって決まります。 url_rewriter.tagsの設定は、デフォルトで "a=href,area=href,frame=src,input=src,form=fakeentry,fieldset=" となってますが、それぞれどのように書き換えられるか調査しました。 結論を書くと、書き換えられる要素が何であろうと、以下の仕様となっているようです。(PHP5.4.0 RC6で確認) name はURLエンコード/HTMLエスケープ共にされない value はurlencode()されるが、

    output_add_rewrite_var()でCSRF対策してみる - k-holyのPHPとか諸々メモ
  • すごいリロード対策 - p4lifeのメモ

    メモ, PHPPHP TIPS】 58. すごいリロード対策紹介されているのはシンプルなワンタイムトークン.単純なリロード対策であれば ticket の値は乱数でなくても良い.ここを乱数にすることで CSRF 対策も兼ねている.ただこの方法は,場合によってはフォームを正常に送信できなくなってしまう問題がある. 例えば,入力画面→入力確認画面と遷移してから別のウィンドウで入力画面→入力確認画面と遷移すると,前の入力確認画面のフォームは ticket が無効になり,フォームを送信できなくなる(複数画面同時編集ができない). 解決策としては,発行したトークンを全て記憶しておき,POST されたトークンと照合する方法がある. confirm.php session_start(); $token = sha1(uniqid(mt_rand(), true)); // トークンをセッションに追加す

    shimooka
    shimooka 2009/03/07
    トークンを複数管理
  • 1