タグ

PHPとsessionに関するred_snowのブックマーク (15)

  • PHPのSession Adoption脆弱性

    (Last Updated On: 2018年8月13日)PHPのセッションモジュールはセッションアダプションに脆弱なのですが、開発者の理解が得られず何年間も放置されています。 セッションアダプション脆弱性: 未初期化のセッションIDを受け入れてセッションを確立する脆弱性。 PHPのセッションIDはデフォルトでドメイン指定無し、パスは/に設定されています。専用サイトならこれであまり困ることは無いのですが、複数のアプリケーションやユーザが利用するようなサイトでは問題になります。 例えば、Chromeはパスよりドメインが優先されるのでドメインを利用したセッションIDの固定化などが起きます。IEではドメインよりパスが優先されるのでパスを利用したセッションIDの固定化などが起きます。 session_regenerate_id()を使えばOK、と考えている人も多いようですが既に設定済みのクッキーの

    PHPのSession Adoption脆弱性
  • セッションとHTTPとHTTPSの関係 - せとっちの備忘録(技術系)

    ログインの仕組みとセッション サイトへのログインを作るときにはセッションを利用するのが 一般的です。 認証できたらセッションにIDなんかを書き込んでおいて、 アクセスされる度にセッションの中に値が存在するかどうか チェックしたりするわけです。 で、ログインは個人情報を通信するわけだから、 HTTPではなくてHTTPS通信でやりましょう、となる訳なんですが、 ログインしたと思ったら、ログインしていない判定をされてしまう…。 これはなぜなのか、という話です。 セッションの連続性 セッション管理は通常CookieにセッションIDを渡して、 サーバに問い合わせをするとき、一緒にCookieの情報も渡して、 そのセッションIDからセッションを特定し、値を取り出したり書いたりするわけですが、 どうも最近のブラウザはHTTPSで受け取ったCookieはHTTP通信に なった時には渡さないようです。 つま

    セッションとHTTPとHTTPSの関係 - せとっちの備忘録(技術系)
  • 元スペース・アイ 代表 ブログ » httpとhttps間でのセッション同期について(PHPの場合)

    ~これは個人的なメモです~ 参考ページ: http://d.hatena.ne.jp/seto-san/20091104/1257328931 http://q.hatena.ne.jp/1095584788 1.URLが同じホスト名でも、httpとhttpsではcookieでのセッションIDの受け渡しは自動的に行われない。 2.httpでは通信が盗聴される可能性があるため、管理機能へログインしたセッションIDをhttpで送受信するべきではない。 3.対策→httpとhttpsで別セッションIDを使用する。 (1)httpにてセッション作成し、ログインの際にform等でhttpsにhttp専用のセッションIDを渡す。 (2)ログインできたらhttps専用のセッションを開始し、セッションIDを取得したらいったんクローズ。

    red_snow
    red_snow 2011/09/22
    httpsからhttpに戻ったら終わりな気もする
  • PHPで 「Webページの有効期限が切れてます」となる時の傾向と対策

    PHPでフォーム等を作った場合、Webブラウザの戻るボタンやJavaScriptのhistory.back()で前のページに戻った時に「Webページの有効期限が切れてます」と表示されることがある。 上記はIEの場合で、ブラウザによって少し挙動が違う(下記)。 いずれもページを更新(リロード)するとサーバにPOSTが再送信され、ページが表示される。 IE上記(IE8の例)のような画面が表示される。Firefox「このページを表示するにはフォームデータを再度送信する必要があります。フォームデータを再送信すると以前実行した検索、投稿や注文などの処理が繰り返されます。」という確認ダイアログが表示され、「再送信」ボタンと「キャンセル」ボタンが表示される。「再送信ボタン」をクリックするとページが表示される。Chrome「フォーム再送信の確認 このウェブページを正しく表示するには、先ほど入力したデータが

  • PHP/セッション管理 - がしまっくす

    独自セッション管理の注意点 † DB, memcached 等を使ってセッション管理を行う場合は、以下の点に注意する。 php.ini の session.auto_start の値が 0 になっていないと正常に機能しない。 session.save_hander の値を user にする必要がある。php.ini で設定したくない場合は ini_set() で設定する。 PHP5.0.5以降の場合は session_start() を呼ぶ前に下記を実行する。 register_shutdown_function('session_write_close'); ↑ MySQL を使ったセッション管理 † セッション管理用のテーブルを作成し、独自セッションハンドラを定義する。 ■ テーブル sessions CREATE TABLE `sessions` ( `id` varchar(32

  • MemcachedではなくRepcachedをセッション管理に使用する(ついでにTokyo Tyrantについても少し)

    森川です。 複数台のWebサーバでセッション管理をする場合、NFS・DB・Memcachedなんかが一般的ですが、今回はMemcachedじゃなくてレプリケーションができるRepcachedを使ってみよう!というお話です。 まずは、Repcachedの話です。といってもMemcachedにレプリケーション機能が追加されたものというものです。 RepcachedはKLab株式会社さんのクラブラボで公開されています。インストール方法などについては、リンク先のページを見ればわかると思います。 今回のエントリで重要なのは、 ・高速であること (Memcachedと遜色ない) ・レプリケーションができること (1台が落ちてもデータが失われない) ・Memcachedのクライアントが使えること(設定を変更する必要がない) ということです。 ただし、割り当てたメモリを超えてデータを保存した場合には、デー

    MemcachedではなくRepcachedをセッション管理に使用する(ついでにTokyo Tyrantについても少し)
  • CodeIgniterにmemcacheをsession使用するライブラリを作成しました | PHPプログラマのバリ・ポジ情報ブログ

    PHPのセッション管理にmemcacheを使用しようとしていて複数台のサーバーでmemcacheを利用しようとした場合に php.iniの設定だけではどうやってもできなかった・・・。(当は出来るのかもしれないのだけど・・・) なので、ライブラリを作成しました。 今回はCodeIgniter用のライブラリです。 よかったら使ってみてください。 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 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79

  • midoff.com

    This domain may be for sale!

  • お仕事日記:memcached で PHP セッションを共有してみる - livedoor Blog(ブログ)

    単一サーバで提供している社外向けの PHP サイトアクセスが増大してきた(厳密に言うと、アプリケーション数が増大してきた)ので、そろそろ負荷分散を考えなければならなくなってきた。 PHP セッションを複数サーバで共有するというと、セッション情報をどこに入れるか、という事を考えることになる。で、これには、 o NFS マウントしたディスク o DB / チュートリアル といった選択肢があるが、今回は mixi や slashdot でも導入されてるとか言う memcached を使ってみることにした。 使ってみた限りではキャッシュ読み書きはさすがに高速。どっちかっていうと PHP 応答が遅い(アプリ側の)方が問題になりそうだ。 -- セッションハンドラには、weirdsessionを使った。 session_set_save_handler() でセッションハンドラをオーバライドしているので

  • Blogger

    Google のウェブログ公開ツールを使って、テキスト、写真、動画を共有できます。

  • 【スクリプトインジェクション対策02】セッションIDを頻繁に変更する | gihyo.jp

    スクリプトインジェクションや盗聴によりセッションIDを盗んで利用するまでにはある程度時間が必要です。セッションIDの有効期限が短ければ、セッションIDが悪用される前に有効期限が切れて悪用できない可能性が高くなります。 しかし、セッションIDの有効期限が短すぎると、フォームの入力中に有効期限が切れてしまう等の問題が発生します。一般的なWebサイトであれば30から60分前後で有効期限が切れるようにするとよいでしょう。 例:セッションを60分で無効化 // $_SESSION['last_update']は初期化済み if ($_SESSION['last_update'] PHPの場合、「⁠セッションIDの有効期限切れ=ユーザセッションの無効化」をしなくてもセッションIDを変更できるsession_regenerate_id関数が用意されています。 session_regenerate_id関

    【スクリプトインジェクション対策02】セッションIDを頻繁に変更する | gihyo.jp
  • ke-tai.org » Blog Archive » PHPでケータイからセッションを使う場合の設定方法

    PHPでケータイからセッションを使う場合の設定方法 Tweet 2007/12/12 水曜日 matsui Posted in PHP, サーバ | 23 Comments » 今回は、ケータイ上からPHPのセッションを使う場合の設定方法についてです。 ケータイからPHPのセッションを機能を使う場合、端末によってはクッキーが利用できない場合があるため、そのままでは使うことができません。 セッションを使いたい場合は、インストール時のconfigureオプションに、「–enable-trans-sid」を付ける必要があります。 ※Windowsの場合は特に設定の必要はありません。 また、「php.ini」の設定で、次のように設定してください。 ※設定変更後はWebサーバの再起動が必要です session.use_trans_sid = 1 もしくは「.htaccess」でも設定することができま

  • PHP と Web アプリケーションのセキュリティについてのメモ

    このページについての説明・注意など PHP は、Apache モジュールや、CGI、コマンドラインとして使用できるスクリプト言語です。このページでは、主に PHP における、Web アプリケーションのセキュリティ問題についてまとめています。 Web アプリケーションのセキュリティ問題としては、以下の問題についてよく取り挙げられていると思いますが、これらのセキュリティ問題について調べたことや、これら以外でも、PHP に関連しているセキュリティ問題について知っていることについてメモしておきます。 クロスサイトスクリプティング SQL インジェクション パス・トラバーサル(ディレクトリ・トラバーサル) セッションハイジャック コマンドインジェクション また、PHP マニュアル : セキュリティや、PHP Security Guide (PHP Security Consortium) には、PH

  • PHP:既知のセキュリティ脆弱性 – Session Adoption

    (Last Updated On: 2018年8月13日)追記:より新しい情報については間違いだらけのHTTPセッション管理とその対策をどうぞ。 PHPには広く知られているにも関わらず放置されている既知のセキュリティ脆弱性が幾つかあります。その一つがセッションモジュールのセッションアダプション(Session Adoption)脆弱性です。この脆弱性は現在広く利用されているWebアプリケーションの安全性に、非常に大きな影響を与える脆弱性です。 セッションアダプション脆弱性とはセッション固定化攻撃を可能とする脆弱性の一種です。セッションアダプションに脆弱なセッション管理システムは、ユーザ(ブラウザ)が送信してきた未初期化のセッションIDを受け入れ、セッションを初期化してしまいます。PHPに限らず、RailsJavaのフレームワーク等、多くのWebフレームワークに発見されている脆弱性です。

    PHP:既知のセキュリティ脆弱性 – Session Adoption
  • 今感じていること ロードバランサを用いた時にPHPでセッション管理する時の注意点

    って、そんな機会これまでなかったっす。って、久々の実験ネタ。 そもそも、はじめはデフォルトのファイルによるセッション情報の管理をしていたんですけど、考えてみれば、って、考えなくても、接続先のWebサーバをロードバランサに変えられたら、照会すべきセッション情報が無いから、セッション切れちゃうんですよね。早く気付け自分。 で、こちらにも書かれているように、この場合DBで保持するのが吉と。 PHPのセッションをDBに格納するチュートリアル 複数のウェブサーバーで負荷分散しているような場合、デフォルトのファイルシステムを使う方法ではセッションはきちんと動作しませんね。 こういう場合にDBにセッション情報を格納しますが、そのチュートリアル。 テーブルの定義に始まってsession_set_save_handler()を使ってセッション機能を独自に実装していきます。 で、これに従って、ハンドラを定義し

  • 1