タグ

CSRFに関するbigbroのブックマーク (17)

  • 有名フレームワークのCSRF対策方法を調べたまとめ - webネタ

    ZendFramework 流れ 表示時 : token生成→hiddenセット + セッションにセット 送信時 : 送られてきたtokenをセッションにあるものと同じかでチェック token生成方法 ランダム値 + salt + 固定値 + ランダム値 md5( mt_rand(1,1000000) . $this->getSalt() . $this->getName() . mt_rand(1,1000000) ); まとめ ランダム値をセッションにいれて、送られてきたものとチェック。 Symfony 流れ 表示時 : token生成→hiddenセット 送信時 : 送られてきたtokenを、再度生成したtokenと比較して同じかチェック token生成方法 salt + 固定値 + セッションID sha1($this->secret.$intention.$this->getSe

    有名フレームワークのCSRF対策方法を調べたまとめ - webネタ
  • 絶対復習:authorNariさんの復習表示

    bigbro
    bigbro 2012/02/18
    CSRF(シーサーフ)
  • CSRF | 鳩丸ぐろっさり (用語集)

    用語「CSRF」についてCSRF (しーえすあーるえふ)話題 : セキュリティ CSRF は Cross Site Request Forgeries の略です。"forgery" は偽造の意味で、サイトをまたがって捏造された攻撃リクエストを送信する、という程度の意味になります。 ※ちなみに、CSRF は「シーサーフ」と発音するのだという説もありますが、少なくとも日では「しーえすあーるえふ」と呼ぶ方が主流のようです。 たとえば、blog などは Web 上の管理画面で記事の削除ができるようになっています。削除を実行するには、削除を行うような HTTP のリクエストをサーバに送れば良いのですが、この画面は Cookie なり、Basic 認証なりでアクセス制御がされています。そのため、正規のユーザ以外が削除のリクエストを送っても何も起きません。ログイン済みの正規のユーザが「削除」のリクエス

    bigbro
    bigbro 2012/02/18
    CSRFは「シーサーフ」って発音することを初めて知った
  • Easy CSRF Key - PHPでお手軽にCSRF対策するやつ

    (つかいかた) 1. 適当にrequireする。 require 'easy_csrf.php'; 2. 適当にsession_start()しておく。 session_start(); 3. (HTML) submitの手前に次の一文をいれる <input type="hidden" name="<?= EasyCSRF::KEY_NAME ?>" value="<?= EasyCSRF::generate() ?>" /> 4. データを受け取る箇所で次のようにする if (! EasyCSRF::check($_POST[EasyCSRF::KEY_NAME])) { echo '送信されたデータが、なんかおかしいです'; die(); } コード (こぴぺして使おう!) <?php // easy_csrf.php // by Hamachiya2 // 2012.02.15 cl

  • CSRF脆弱性対策 - monjudoh’s diary

    CSRF対策のtokenはセッションIDで良い セキュリティ的にワンタイムトークン>セッションIDではない。 という話が、この辺の記事に書かれています。 高木浩光@自宅の日記 - クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法 高木浩光@自宅の日記 - CSRF対策に「ワンタイムトークン」方式を推奨しない理由, hiddenパラメタは漏れやすいのか? 肝はこういう事のようです tokenは外部のサイトから知り難い(実質知り得ない)ものでないといけない セッションIDはcookieに格納される document.cookieは自ドメインのものと親ドメインのものしか見れない→外部サイトで動かすJavaScriptからは参照できない セッションIDは『暗号学的に安全な擬似乱数生成系で生成されているはず』(引用) 推測も事実上できない 補足すると、セッションIDを使用したCSRF対

    CSRF脆弱性対策 - monjudoh’s diary
  • formタグを利用したtoken奪取 - ma<s>atokinugawa's blog

    スクリプトの実行はできない(XSS対策されている)し、tokenは導入されている(CSRF対策されている)のに、tokenを奪取され、不意な操作をされてしまう例というのを1つ、やってみたいと思います! 実証だニャン! http://d.hatena.ne.jp/kinugawamasanyan/20101012/nyan 原理 こういうフォームがあったら、submitボタンを押下した時にtokenの値がA、Bどっちにポストされるでしょうか。 <form action="A" method="post"> <form action="B" method="post"> <input type="hidden" name="token" value="123123123"> <input type="submit"> </form> 答えはAです。 つまり来設置されたフォームより前に別のf

    formタグを利用したtoken奪取 - ma<s>atokinugawa's blog
  • OpenIDのライブラリにはCSRFに脆弱な物が多い

    (Last Updated On: 2018年8月8日)GNUCitizenによると CSRF – It comes very handy. It seams that no matter how much you talk about it, very few pay attention on the problem. And it is not a problem that you can afford to have. And among the XSS issues, which most OpenID libraries have, CSRF (Cross-site Request Forgery) seams to be the most pervasive form of attack. http://www.gnucitizen.org/blog/hijacking-ope

    OpenIDのライブラリにはCSRFに脆弱な物が多い
  • CSRF対策は基本? | 水無月ばけらのえび日記

    コミュニティーサイト構築に詳しい専門家は、「CSRF対策は基的なところ。Amebaなうが対策していなかったのは意外だ」と話している。 「CSRF対策は基的なところ」と言われると、発見も対処も容易であるような印象を受けますが、これは少し違和感がありますね。 半年ほど前の話ですが、弊社 (www.b-architects.com)のクライアントが新規のECサイトを立ち上げるにあたって脆弱性診断をしようという話になり、外部の会社に見積もり依頼をしたことがあります。その際、業界では知らない人がいないような大手会社の診断メニューも見せていただきました。 そこで印象的だったのは、標準とされるプランにCSRFの診断が含まれていなかったことです。標準のコースにはXSSやSQLインジェクションの診断が含まれますが、CSRFは「アドバンスド」プランの方にしか含まれていませんでした。普通のサイトではXSSや

  • hata's LABlog: CSRF対策 with JavaScript

    JavaScript を使った CSRF 対策の方法として、以前 Kazuho@Cybozu Labs で紹介されました。 CSRF 対策 w. JavaScript CSSXSS に対して脆弱でない CSRF 対策とはどのようなものか、という議論が続いているようですが、JavaScript を用いてよいのであれば、簡単な対策手法が存在すると思います。 ここでさらに一歩進めて、既存の FORM 要素に onsubmit 属性、および hiddenフィールドを直接追加せずに、JavaScript ファイルを1つインクルードすることにより、既存アプリケーションの書き換えをさらに少なくする方法を紹介したいと思います。 以下の JavaScript ファイルをHTMLの最後でインクルードする方法です。 fight_csrf.js sessid_name = ""; scripts = docume

  • 高木浩光@自宅の日記 - CSRF対策に「ワンタイムトークン」方式を推奨しない理由

    水色の四角は画面を表し、白抜き実線枠の四角はボタンを表す。 これを、Webアプリという実装手法を選択する場合に特化すると、図2のような遷移図が描ける。 実線矢印はブラウザが送信するHTTPのrequest(ヘッダおよび、POSTの場合はボディを含む)を表し、黄色の丸がサーバ側での1アクセスの処理を表し、点線がその処理結果を返すHTTPのresponse(ヘッダおよび、HTML)を表す。responseの上の文はHTMLの内容を説明するものである。黄色の丸の中の文は処理内容の説明であり、ここから複数のresponse矢印が出ている場合、処理の結果によって遷移先の画面が異なる場合であることを表し、破線の白抜き四角がその分岐の条件を概説している。 この図で例に用いているのは、ECサイトやblogサービスなどに見られる典型的な「登録個人情報変更」の機能である。「メインメニュー」画面の「登録情報変更

  • 高木浩光@自宅の日記 - クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法

    ■ クロスサイトリクエストフォージェリ(CSRF)の正しい対策方法 「クロスサイトリクエストフォージェリ」がにわかに注目を集めている。古く から存在したこの問題がなぜ今まであまり注目されてこなかったかについて考 えているところだが、引越しやら転勤やらでいまひとつ日記を書く時間がない。 しかし、 @ITの記事などのように混乱させる解説も散見されるので、一点だけ対策 方法について書いておくとする。 クロスサイトリクエストフォージェリ――Cross-Site Request Forgeries (CSRF)を防止する簡潔で自然な解決策は以下のとおりである。 前提 ログインしていないWeb閲覧者に対するCSRF攻撃(掲示板荒らしや、ユーザ登 録を他人にさせる等、サイト運営者に対する業務妨害行為)はここでは対象と しない。 ログイン機能を持つWebアプリケーションの場合、何らかの方法でセッション 追

  • 開発者のための正しいCSRF対策

    著者: 金床 <anvil@jumperz.net> http://www.jumperz.net/ ■はじめに ウェブアプリケーション開発者の立場から見たCSRF対策について、さまざまな情報が入り乱れている。筆者が2006年3月の時点において国内のウェブサ イトやコンピュータ書籍・雑誌などでCSRF対策について書かれている記事を調べた結果、おどろくべきことに、そのほとんどが誤りを含んでいたり、現実的 には使用できない方法を紹介したりしていた。そこで稿ではウェブアプリケーション開発者にとっての当に正しいCSRF対策についてまとめることとす る。また、採用すべきでないCSRF対策とその理由も合わせて紹介する。 ■あらゆる機能がターゲットとなりうる ウェブアプリケーションの持つ全ての機能がCSRF攻撃の対象となりうる。まずこのことを認識しておく必要がある。 Amaz

  • クロスサイトリクエストフォージェリ - Wikipedia

    クロスサイトリクエストフォージェリ (cross-site request forgery) は、Webアプリケーションの脆弱性の一つ[1]もしくはそれを利用した攻撃。略称はCSRF(シーサーフ (sea-surf) と読まれる事もある[2][3])、またはXSRF。リクエスト強要[4]、セッションライディング (session riding[3]) とも呼ばれる。1990年代はイメタグ攻撃とも呼ばれていた[要出典]。脆弱性をツリー型に分類するCWEではCSRFをデータ認証の不十分な検証 (CWE-345) による脆弱性のひとつとして分類している (CWE-352)[5]。 なおCSRFの正式名称はクロスサイトスクリプティング (XSS) と似ているが、XSSは不適切な入力確認 (CWE-20) によるインジェクション (CWE-74) のひとつとして分類されており[5]、全く異なる種類の

  • はてなブログ | 無料ブログを作成しよう

    「百年の孤独」を粘り強く読んだら、読書スピードが上がった件 最近、を読むスピードが速くなってきた。片道の通勤電車で50ページだったのが、70ページくらい読めたりする。 理由は先日、百年の孤独をなんとか読み終えたことが大きい気がする。 百年の孤独 (Obra de Garc´ia M´arquez) 作者:ガルシア=マルケス,ガブリエル 新潮社 …

    はてなブログ | 無料ブログを作成しよう
  • CSRFの対応について、rails使いが知っておくべきこと - おもしろwebサービス開発日記

    以前、CSRFについてのエントリを書きました。 CSRFについて - おもしろWEBサービス開発日記 上記エントリではCSRFの概念について書きましたが、もう少しつっこんで調べる必要が出てきました。調べたことを書いてゆきます。 基礎 application.rb(ないし適当なController)にprotect_from_forgeryメソッドを定義すれば、railsが自動的にCSRF対策をしてくれます。というか、デフォルトでapplication.rbに下記のように書いてあるので、特に何もせずともCSRF対策はバッチリなのです。 protect_from_forgery # :secret => '8ff3ed33f86a431662d8dfe255acdb4a' railsは、get以外の動詞のリンクに、authenticity_tokenというパラメータを自動的に付け加えます。ge

    CSRFの対応について、rails使いが知っておくべきこと - おもしろwebサービス開発日記
  • rails2の、authenticity_token出力をとめる - Pistolfly

    rails2の、authenticity_token出力をとめる rails2から導入されたauthenticity_tokenによるCSRF対策を無効にする方法。 この検証に失敗した場合、以下の例外が発生する。 ActionController::InvalidAuthenticityToken (ActionController::InvalidAuthenticityToken) 特定のアクションでauthenticity_tokenの出力、検証を無効にする。 class TestController < ApplicationController protect_from_forgery :except => [:hello] def hello self.allow_forgery_protection = false end end コントローラのアクションすべてでauthen

    rails2の、authenticity_token出力をとめる - Pistolfly
  • Ruby On Rails ピチカート街道 - Rails 2.0・その12(CSRFを勝手に防止) -

    2024.02 « - - - - - 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 - - - - - - » 2024.04 CSRF (Cross-Site Request Forgery) を勝手に防止してくださいます。 CSRF とは簡単に言うと、ある特定のURLがDBに挿入したり更新したりすると仮定します。そして、そのURLにアクセスしまくってDBの値を変えまくることです(だと思う・・・)。 script/generate scaffold した時点で、もう既に対応済みになっていて何もすることはありませんでした。 じゃあ、どこで設定されているか、というと、app/controllers/application.rb をご覧ください。 protect_from

  • 1