タグ

sessionに関するclavierのブックマーク (18)

  • DynamoDBでTomcatのセッション共有をするとハマるかも - 谷本 心 in せろ部屋

    AWS仕事で使い始めて1年半、 ようやく頭がクラウド脳に切り替わってきた [twitter:@cero_t] です。 好きなAWSサービスはKinesisです。まだ使ってませんけどね! さて、今日のテーマは「AWSでTomcatのセッション共有」です。 EC2上で動くTomcatのセッションオブジェクトを、DynamoDBを使って共有するというものです。 話題としてはそれなりに枯れていると思うのですが、 実案件で使おうと思ったら問題が出そうになって困ってる、という話です。 発生する問題は? どういう問題が起きるか、先に書いておきます。 発生する問題は、 複数のTomcatをELBで分散させている時に、 スケールインやスケールアウトが短時間に連続して発生すると、 セッションが巻き戻る(先祖返りする)可能性がある、というものです。 セッションが消えるならまだしも、 先祖返りするというのは、実

    DynamoDBでTomcatのセッション共有をするとハマるかも - 谷本 心 in せろ部屋
  • セッション管理の要注意点 - Qiita

    Webアプリを開発するに当たって、「自分でセッションを書きたい」なんて思う人はおそらく1%もいないでしょう。とはいえ、標準で備わっているセッション機能に問題や機能不足があって、手を入れざるを得なくなる、という場面も多々存在してしまいます。ここでは、セッションまわりでよく問題になる部分について触れてみましょう。 そもそも、セッションとは Webアプリにおけるセッションは、 接続ごとに固有の識別子(セッションID)を割り当て、その接続を使った通信のたびにセッションIDを送受信する セッションIDと紐付ける形でデータを持って、アクセスごとに値を読み出す。 データが書き変われば、書き戻す。 というような流れで、「接続ごとにデータを保存する」ということを実現しています。 セッションとCookie 上の1にあるような「通信のたびにセッションIDを送受信する」ために使われるのがCookieです。ただ、C

    セッション管理の要注意点 - Qiita
  • はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知

    はてなグループの終了日を2020年1月31日(金)に決定しました 以下のエントリの通り、今年末を目処にはてなグループを終了予定である旨をお知らせしておりました。 2019年末を目処に、はてなグループの提供を終了する予定です - はてなグループ日記 このたび、正式に終了日を決定いたしましたので、以下の通りご確認ください。 終了日: 2020年1月31日(金) エクスポート希望申請期限:2020年1月31日(金) 終了日以降は、はてなグループの閲覧および投稿は行えません。日記のエクスポートが必要な方は以下の記事にしたがって手続きをしてください。 はてなグループに投稿された日記データのエクスポートについて - はてなグループ日記 ご利用のみなさまにはご迷惑をおかけいたしますが、どうぞよろしくお願いいたします。 2020-06-25 追記 はてなグループ日記のエクスポートデータは2020年2月28

    はてなグループの終了日を2020年1月31日(金)に決定しました - はてなの告知
  • java における sticky session の話 - tokuhirom's blog

    HTTPのセッションをRedisのようなバックエンドに持たせて毎回参照するような構成と、それに加えてローカルオンメモリキャッシュとSticky sessionでさらにnear cache挟んで高速化するの、どっちがベターか論争みたいなのって過去にあるのかな — Takayoshi Kimura (@nekop) November 17, 2014 Javaだとローカルオンメモリキャッシュ簡単だけど、マルチプロセスモデルなスクリプト言語とかだとローカルキャッシュ共有面倒だからバックエンド一択というのが多数派になる — Takayoshi Kimura (@nekop) November 17, 2014 このへん見てて考えたことのメモ。 実際、Java のシングルサーバーからスケールアウトさせる場合は「sticky session によるオンメモリキャッシュ → redis かなにかのバック

  • [devise][rails][ruby] Rails4 で devise を使ってカスタムルーティングを作る術 - HsbtDiary(2014-08-12)

    ■ [devise][rails][ruby] Rails4 で devise を使ってカスタムルーティングを作る術 devise では、users モデルを認証対称として設定した場合、利用したモジュールに応じてがががっとルーティングが自動生成される。簡単な例だと devise_for :users とすると /users/sign_in などが生成される。これを /users/signin にしたい場合はこうする devise_for :users, paths: {sign_in: 'signin'} さらに /signin にしたいよね〜ということは多々あるはずなので、こうする。 devise_for :users, paths: {sign_in: 'signin'} devise_scope :users do get '/signin', to: 'sessions#new',

    [devise][rails][ruby] Rails4 で devise を使ってカスタムルーティングを作る術 - HsbtDiary(2014-08-12)
  • Node.js + Express + MongoDB でのセッション管理 - hogehoge

    なんでMongoDBでセッション管理するのか Node.js + Express (Connect) で標準で提供されている MemoryStore でセッション管理を行うとメモリ上での管理になるため node が落ちるとセッションデータが消えることになりセッションの永続化ができませんし、動作確認もソースの確認も行っていませんが、production で起動した際に出力されるメッセージ(https://github.com/senchalabs/connect/blob/master/lib/middleware/session.js#L199)に Warning: connection.session() MemoryStore is not designed for a production environment, as it will leak memory, and will n

    Node.js + Express + MongoDB でのセッション管理 - hogehoge
  • 間違いだらけのHTTPセッション管理とその対策

    (Last Updated On: 2018年10月12日)HTTPセッション管理はWebセキュリティの中核と言える機能です。Webセキュリティの中核であるHTTPセッション管理に設計上のバグがある事は少なくありません。今回のエントリはPHP Webアプリ開発者ではなく、主にWebフレームワーク側の開発者、つまりPHP体の方に間違いがあるという話しです。Webアプリ開発者の回避策も紹介します。 まずセキュリティの基として「入力のバリデーションを行い、正当な入力のみを受け入れる」があります。しかし、PHPに限らず多くのセッション管理機構は当たり前の「入力のバリデーションを行い、正当な入力のみを受け入れる」を行っていません。セッションIDの再生成(リセット)も不完全な物が多いと思います。 参考: 知らないと勘違いする「合成の誤謬」の罠 開発者は必修、SANS TOP 25の怪物的なセキュリ

    間違いだらけのHTTPセッション管理とその対策
  • PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋

    下記の文章は、PHPのセッションIDに対する攻撃についてFull Disclosure MLに2010年に投稿された文章を和訳したものです。訳者の意見としては、攻撃の成立条件は極めて厳しく、そこまで深刻度は高くないと考えています。 とはいえ、疑似乱数列への攻撃がどのように行われるのか、その可能性を示す文章は比較的珍しいもののように思います。暗号論的に安全な疑似乱数とは何か、なぜ必要なのかといった内容を間接的に教えてくれる面白い文章だと感じましたので、今回翻訳してみました。 (以下、原文の和訳です) 原文:http://seclists.org/fulldisclosure/2010/Mar/519 Advisory (c) 2010 Andreas Bogk <andreas () andreas org> Product:PHP Version:5.3.2 以降 脆弱性の種類:暗号論的な

    PHPのセッションIDは暗号論的に弱い乱数生成器を使っており、セッションハイジャックの危険性がある : DSAS開発者の部屋
  • Rails SessionにCookieStore使った時の問題点 - OAuth.jp

    今日 @mad_p さんからRT来てたこのツイートに関して、ちょっと調べたのでまとめときます。 Security Issue in Ruby on Rails Could Expose Cookies http://t.co/JlsXVEn4rZ — Ruby on Rails News (@RubyonRailsNews) September 25, 2013 前提条件 Railsではデフォルトでsessioncookieにのみ保存して、DBなりmemcacheなりのserver-side storageには何も保存しません。 これがCookieStoreとか呼ばれてるやつです。 この場合のsession cookieは、Railssession object (Hash object) をMarshal.dumpしてそれに署名を付けたtokenです。 rails 4では署名付ける代

  • Python の subprocess の preexec_fn の実装と fork のスレッドセーフティー問題

    methane @methane @riywo fork してから exec する前に実行して欲しい関数を指定します。具体的には os.setsid とか指定します。(最近の Python だと start_new_session キーワード引数指定できますが)

    Python の subprocess の preexec_fn の実装と fork のスレッドセーフティー問題
  • [PHP] セッション ID の桁数を増やしたい | バシャログ。

    ガムってたら前歯がちょびっと欠けたんですけど・・・!衝撃!どうもこんにちは nakamura です。 とある案件でセキュリティ上の理由からセッション ID をデフォルトよりも長くしたいなぁという事があり、そもそもそんなことできんのよか!?ってことで調べてみたところ、限界はあるものの一応方法が見つかったので今回はそのご紹介。というか、デフォルトのセッション ID の仕様が結構オソマツでびっくらこきました。 デフォルトの仕様 こんな感じ。 使用される乱数 IP アドレス、現在時刻、線形合同法による疑似乱数を組み合わせたもの ハッシュアルゴリズム md5 使用される文字列 0-9 a-f 使われる乱数がこの仕様だと WEB サーバが複数台あってアクセスがそれなりにあるサイトだと普通にセッション ID かぶることありそうですよね。 そもそも md5 ってあんまり良くないって言われてるし・・・(W

    [PHP] セッション ID の桁数を増やしたい | バシャログ。
  • セッションID管理は結局どうすれば良いのか?

    (Last Updated On: 2018年8月18日)脆弱性やセキュリティ対策について技術的な話ばかりしていたので「それで結局PHPのセッション管理どうすれば良いの?」と思われた方も多いと思います。簡単にまとめます。漏れや追記した方が良い事などがあったらご指摘ください。 session_regenerate_id()の使い方(セッションID再生成) ログイン処理時・ログアウト処理には最初にsession_regenerate_idを呼ぶ。 定期的にsession_regenerate_idを呼ぶ。間隔が短いほど低リスク。 session_regenerate_idはtrueオプション(古いセッションデータ削除)を付ける。 session_regenerate_idでtrueオプションは付けない。その代わりに再生成した時点のタイムスタンプを古いセッションデータに記録し、数分後からそのセッ

    セッションID管理は結局どうすれば良いのか?
  • セッションアダプションがなくてもセッションフィクセイション攻撃は可能

    大垣(@yohgaki)さんと、セッションアダプション脆弱性が「重大な脅威」か否かで論争を続けています。 大垣さん:第25回 PHPのアキレス腱 ── セッション管理徳丸:PHPSession Adoptionは重大な脅威ではない大垣さん:PHPのセッションアダプション脆弱性は修正して当然の脆弱性議論がかみ合わないので、twitterで「ブログ読みました。サンプルも動かしました。問題は分かるのですが、セッションアダプションがないPHPだと、何が改善されるのかが分かりません。教えて下さい」とツイートしたところ、大垣さんがブログで返信下さいました。 大垣さん: セッションアダプション脆弱性がないセッション管理が必要な理由これを読んでかみ合わない理由が分かりました。大垣さん、ありがとうございます。以下大垣さんのブログの末尾を引用します。 脱線しましたが、何が改善されるのか?結論は ログイン時に

    セッションアダプションがなくてもセッションフィクセイション攻撃は可能
  • レガシーPHP改善日記 シーズン1 エピソード3 - komagataのブログ

    Migrations Pluginの導入cakeディレクトリがcake_core/cakeという感じで置かれていて色々設定しないとcakeコマンドが動かないのでデフォルトの位置に戻した。おそらくcakeコマンドによるgenerateは使ってなかったんだろう。generateを使わないとCakePHPのレールから大幅に外れることになりがち。cakeコマンドが動いたことによってようやくmigrations pluginを導入できた。現状のDBの状態をmigrationファイルに変換できたが、そもそも初期データはどうあるべきなのかがわからないので困った。テーブルが50ぐらいあるDBの初期データを手で作っていたら日が暮れてしまう。相談したところ、初期化に使っているSQLがあるとのことでそれを頂いた。とても助かった。 一番手っ取り早いテストseleniumでテストを書いている。とにかく「このページ開

  • PHPセッションアダプションをスクリプト側で修正する方法

    (Last Updated On: 2018年8月13日)PHPのスクリプトを使ってアダプティブなPHPセッションをアダプティブにしない方法を紹介します。 このブログで紹介していたかどうか覚えていないですが、セッションアダプション対策としてsession_regenerate_id()が導入された時に議論・紹介されているので知っている方も多いと思います。(というより、PHPerの常識ですよね?) まずはセッションアダプションの原理と対策の復習をしておきます。 原理: 未初期化のセッションIDを受け入れる 対策: 初期化済みセッションIDのみ受け入れる session_regenerate_id()は新しいセッションIDを生成して新しいセッションクッキーを作成して、セッションデータを保存するようになっています。session_regenerate_id()を呼んだだけでは、なんらかの方法で複

    PHPセッションアダプションをスクリプト側で修正する方法
  • 大規模 Web サービスでログインを長期間保持するには SESSION は使わず Cookie とデータベースだけで実装する | ウェブル

    先日ペコリンという Web サービスを公開したのですが、これが初めての WordPress との複合会員向けサービスだったためか、ログインが途中で切れたり、記事投稿時のリダイレクトがかかるタイミングなどで SESSION が切れてしまうことがありました。 しかし Twit Delay では長期的にログインが保持されていたり、mixi とかではログイン時間を指定できたりするので、なんとかできるものだろうと考えていたら Twitter で教えてもらいましたのでまとめておきます。 SESSION だけを使ったログインの保持では長期ログインは不可 私は今までログインの保持は以下のようにしていました。 1 2 3 4 5 <?php ini_set('session.gc_maxlifetime', 60*60*24); ini_set('session.gc_divisor', 10000); s

  • 「安全なWebアプリケーションの作り方」を読んでセッションを復習してみた - As a Futurist...

    タイトルが長くて略称があれば知りたい感じの「安全な Web アプリケーションの作り方」を暇を見つけて読んでいます。今まであいまいなままだった部分を順を追って説明してくれるので、当に助かります。Web アプリ作りの初心者は卒業したかなーという人は必ず目を通しておくと良いと思います。 Cookie を用いたセッションについて復習 「HTTP はステートレスで」とかいう話はよく聞きますが、じゃあどうやってセッション管理するのがいいの?って話をよく考えると体系的に聞いたことがなかった!というわけで、こので文字通り体系的に学び直すことができました。 その中でも、「セッション ID の固定化」という話題はちゃんと分かってなかった部分があったので、こちらのサイトを参考に PSGI なアプリケーションを作ってみました(僕の書いたアプリ自体はその他の脆弱性に溢れていますがw)。コードはエントリの最後に。

    「安全なWebアプリケーションの作り方」を読んでセッションを復習してみた - As a Futurist...
  • PHPのSession Fixation問題

    (Last Updated On: 2006年10月24日)PHPのセッション管理はセッションの固定化(Session Fixation)に脆弱であることは広く知れらていると思っていました。先日、php-users(ja)のMLに「Hardened PHPプロジェクトのStefanさんのパッチにSQLite Sessionモジュール用のセッションセーブハンドラパッチを追加したパッチを公開しました」と投稿しました。しかし、ダウンロード数等から推測するとセッションの固定化のリスクが正しく認識されていないのではないかと思えます。 セッション固定化のリスクを分かりやすく説明するには具体的な攻撃のシナリオを紹介した方がわかり易いのでいくつか説明します。以下の説明はデフォルト状態のPHPインストールでSession Fixation対策を行っていないのPHPアプリケーションに対して可能な攻撃の一例です

    PHPのSession Fixation問題
  • 1